zynq PS点灯

摸鱼碎碎念:

需要做ADC采集并在TFT屏幕实时显示波形(简易示波器)

发现只使用fpga实现比较困难

使用的是zynq,刚好来把arm部分也学到

参考视频

     与

教材文档

01_Zynq SoC FPGA的诞生_哔哩哔哩_bilibili

(这是俺点开AXI4接口协议后发现的系列视频教程T_T)

03_【裸机教程】基于C编程的Zynq裸机程序设计与应用教程v2.4.5.pdf

【产品资料】【Zynq开发板】小梅哥ACZ702开发板全套资料下载 - ACZ702开发板 - 芯路恒电子技术论坛 - Powered by Discuz! (corecourse.cn)

(这个在网盘下载就好)

zynq ug585文档下载链接:

ug585-Zynq-7000-TRM.pdf · adba5616e0bc482c1dc162123773ced75670d679 · POZ_FPGA / hardware · GitLab

(这是俺在edge随便找的,俺安装vivado的那个找不到T_T)

小梅哥裸机编程课程笔记链接:【zynq裸机编程课程笔记合集】 - ACZ702开发板 - 芯路恒电子技术论坛 - Powered by Discuz! (corecourse.cn)

1. 今日摸鱼任务

实现PS端点灯

第一次走流程搞了很久,也踩了一些坑,记录一下摸鱼历程

//本次先走一下流程

        //具体C程序编写下次发

2. zynq开发流程

3.  vivado基础配置设置   xc7z010clg400-1 

        //先搞完fpga部分,再搞arm       

①创建工程    

                                      xc7z010clg400-1 

②创建模块设计

③构建硬件系统

添加并配置IP核

注意上面的电平!!!!!
设置后,图形界面就会出现一个小对号

点击OK,可以得到:多了配置好的GPIO_0

导出引脚

④生成封装

然后可以得到:

⑤管脚约束

在管脚约束界面中,我们需要做的是对使用到的 PL 端的管脚进行分配并对管脚电平进行约束,本次设计所涉及到的为 PL 端的按键和 PL 端的 LED 灯:

Ctrl + S

⑥生成比特流

⑦导出硬件

⑧启动SDK

4. CPU软件程序设计

①创建SDK工程

此时,多了两个文件夹

②添加应用库

//这里是按照  03_【裸机教程】基于C编程的Zynq裸机程序设计与应用教程v2.4.5.pdf

所以与视频课程不太相同

【产品资料】【Zynq开发板】小梅哥ACZ702开发板全套资料下载 - ACZ702开发板 - 芯路恒电子技术论坛 - Powered by Discuz! (corecourse.cn)

(这个在网盘下载就好)

工程创建完成后新建一个 ACZ702_Lib 文件夹,用来存放提供的库。
路径如下: 小梅哥 ACZ702 Zynq 开发板资料 \ 盘A_ACZ702 开发板标准配套资料 \02_ 设计实例 \03_ 【裸机例程】基于 C 编程的 Zynq 裸机例程 \ ACZ702_Lib
//这个网盘路径自己下载哈,不是放的链接。
通用中断控制器和私有定时器是 Zynq 上十分常用的资源,在 SDK 中就可以直接配置使用,因此在我们的设计中都会默认加上 SCU 应用库。本次设计虽然没有使用到这两个资源,但是考虑到工程的适用性,将会添加 SCU 应用库(但是并没有使用)。
PS_GPIO SCU 拷贝到 ACZ702_Lib 中,
USER 文件夹下的文件拷贝 到 src 下,

③添加头文件路径

会出现

(这里是有一定的小问题的,就是俺有时候会不现实,重新操作一下又就有显示了,俺还没有搞懂)

这里注意选择到PS_GPIO 、 SCU 、USER三个文件夹处就OK

要重复三次

④添加用户代码

在main.c中:
/*
* 使用 PS_GPIO 实现了按键控制 LED 功能 :
* PS 端按键按下 →PL 端的灯亮起,松开熄灭
* PL 端按键按下 →PS 端的灯亮起,松开熄灭
*/
#include "COMMON.h"
int main ( void )
{
u8 State; // 存放按键 (MIO47) 的电平状态, 0 为低电平, 1 为高电平
PS_GPIO_Init (); // 初始化 PS MIO EMIO
// 设置 PS_LED(MIO7) 为输出并且初始为低电平
PS_GPIO_SetMode (PS_LED, OUTPUT, 0 );
// 设置 PL_LED(EMIO0) 为输出并且初始为低电平
PS_GPIO_SetMode (PL_LED, OUTPUT, 0 );
PS_GPIO_SetMode (PS_KEY, INPUT, 0 ); // 设置 PS_KEY(MIO47) 方向为输入
PS_GPIO_SetMode (PL_KEY, INPUT, 0 ); // 设置 PL_KEY(EMIO1) 方向为输入
while ( 1 )
{
// 读取 PS_KEY 的电平值并存储到 State 变量里
State = PS_GPIO_GetPort (PS_KEY);
// State 变量的值取非赋予 PL_LED 来输出
PS_GPIO_SetPort (PL_LED,!State);
// 读取 PL_KEY 的电平值并存储到 State 变量里
State = PS_GPIO_GetPort (PL_KEY);
// State 变量的值取非赋予 PS_LED 来输出
PS_GPIO_SetPort (PS_LED,!State);
}
return 0 ;
}
可以调整字体大小
打开 COMMON.h ACZ702 头文件下添加本次设计所使用库的头文件声明,这里已经预先对 ISR.h SCU_GIC.h SCU_TIMER.h 进行了声明,所以只需添加 PS_GPIO.h 即可。
#include "PS_GPIO.h"
接下来在用户宏定义下添加 GPIO 的定义,代码如下:
//MIOn 对应的 GPIO 编号为 n
#define PS_LED 7 //MIO_LED MIO7 ,对应的 GPIO 编号为 7
#define PS_KEY 47 //MIO_KEY MIO47 ,对应的 GPIO 编号为 47
//EMIOn 对应的 GPIO 编号为 54+n ,因为 MIO 总数为 54 EMIO 是从 54 开始算的
#define PL_LED ( 54 + 0 ) //EMIO_LED EMIO0 ,对应的 GPIO 编号为 54+0=54
#define PL_KEY ( 54 + 1 ) //EMIO_KEY EMIO1 ,对应的 GPIO 编号为 54+1=55
Ctrl+S 保存设计, SDK 会自动编译,在确认编译无误后,接下来便可以开始进行板级验证了。

5.板级验证

连接好开发板

//摸鱼结束!!!

//过程还是遇到了很多弯弯绕绕

//下次学习C编程~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/667805.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【小白专用24.5.30已验证】Composer安装php框架thinkPHP6的安装教程

一、框架介绍 1、框架简介和版本选择 Thinkphp是一种基于php的开源web应用程序开发框架ThinkPHP框架,是免费开源的、轻量级的、简单快速且敏捷的php框架。你可以免费使用TP框架,甚至可以将你的项目商用; ThinkPHP8.0 是目前框架正式版的最新版…

windows上CMake、Mingw和VSCode配置调试C/C++代码

大型项目里经常使用CMake,我在Windows平台上开发,使用的代码编辑器是VSCode,我使用的是mingw的编译器,以前使用的是一个脚本来进行编译: run.bat cmake -G "MinGW Makefiles" .. mingw32-makeVSCode可以方…

Linux实验报告(二)——Linux系统中的常用命令

目录 一、实验名称: 二、仪器、设备: 三、参考资料: 四、实验目的: 五、实验内容(步骤): 六、实验数据(程序)记录: ​编辑 ​编辑 七、实验结果分析…

蒙自源六一儿童节特别活动:美食盛宴,快乐无限

蒙自源始终坚持以用户为中心,致力于为消费者提供健康美味的米线。据悉,蒙自源的每家门店店长都会在每天早晨亲自熬制一锅鲜美的汤底,确保顾客能够享受到最新鲜、最美味的米线。为了庆祝六一,蒙自源特意为孩子们准备了一场别开生面…

云数融合与大数据技术在日常生活中的创新应用探索

前言 移动云模型服务产品在中国移动旗下主要包括云计算、大数据、人工智能等服务,它依托广泛的算力资源(4N31X)、丰富的网络接入资源和高品质云专网,实现算网端资源一站式开通,构建企业级一体化解决方案。 文章目录 前言云计算的日常应用智…

六一儿童节与AIGC:科技与童趣的奇妙融

随着人工智能生成内容(AIGC)技术的发展,越来越多的应用和网站专门为儿童提供学习、游戏和绘画方面的支持。这些平台不仅能够提高孩子们的学习兴趣,还能激发他们的创造力。在六一儿童节即将到来之际,让我们来介绍几款利…

力扣刷题--485. 最大连续 1 的个数【简单】

题目描述 给定一个二进制数组 nums , 计算其中最大连续 1 的个数。 示例 1: 输入:nums [1,1,0,1,1,1] 输出:3 解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3. 示例 2: 输入&…

颠覆传统:探索Web3对传统计算机模式的冲击

随着Web3技术的崛起,传统计算机模式正面临着前所未有的冲击与挑战。Web3作为下一代互联网的代表,以其去中心化、安全可信的特性,正在颠覆着传统计算机模式的种种假设和局限性。本文将深入探讨Web3对传统计算机模式的冲击,并探索其…

HTML+CSS+JS 熊猫登录表单

效果演示 实现了一个可爱的熊猫登录界面,页面背景使用了渐变色,熊猫的头部和身体使用了圆形和椭圆形的边框,使用了CSS的伪元素和阴影效果来实现熊猫的手和脚。登录框使用了flex布局,包括用户名和密码的输入框和登录按钮,使用了CSS的过渡效果和伪类来实现输入框的动态效果。…

北斗应急救援终端如何做好汛期重点行业安全防控?

【安全提示】 汛期各地高温多雨、极端天气增多 防汛和安全生产形势严峻复杂如何做好汛期重点行业企业安全生产风险防控? 顶坚北斗短报文终端V1单北斗定位终端 北斗应急救援终端在汛期重点行业安全防控中扮演着关键角色,其高可靠性、稳定性和丰富的功能扩…

IdentiFace——多模态人脸识别系统,可捕捉从情绪到性别的所有信息及其潜力

1. 概述 面部识别系统的开发极大地推动了计算机视觉领域的发展。如今,人们正在积极开发多模态系统,将多种生物识别特征高效、有效地结合起来。 本文介绍了一种名为 IdentiFace 的多模态人脸识别系统。该系统利用基于 VGG-16 架构的模型,将人…

国际荐酒师(香港)协会受邀出席广州意大利国庆晚宴

2024年5月30日,意大利驻广州总领事馆举办的2024年意大利国庆招待会及晚宴,庆祝意大利共和国成立。此次晚宴旨在促进中意两国之间的文化交流与合作。国际荐酒师(香港)协会受主办方邀请参与了这一重要活动。 国际荐酒师(…

阿里云语音合成TTS直播助手软件开发

阿里云的TTS比较便宜,效果比不了开源克隆的那种,比纯机器人效果好一点点 阿里云sambert https://help.aliyun.com/zh/dashscope/developer-reference/quick-start-13 Sambert系列模型 1万字1元 ,每主账号每模型每月3万字免费 创建API-KEY htt…

SpockMockStatic方法

SpockMockStatic方法 参考: https://blog.csdn.net/knighttools/article/details/44630975 ‍ static方法 import com.meituan.mafka.client.producer.IProducerProcessor; import com.meituan.mdp.langmodel.api.message.AssistantMessage; import com.sankuai.gaigc.arrang…

CentOs-7.5 root密码忘记了,如何重置密码?

VWmare软件版本:VMware Workstation 16 Pro Centos系统版本:CentOS-7.5-x86 64-Minimal-1804 文章目录 问题描述如何解决? 问题描述 长时间没有使用Linux系统,root用户密码忘记了,登陆不上系统,如下图所示…

TOPIAM数字身份管控平台前端技术实践

一、引言 随着企业信息化程度的不断加深,内部办公系统、业务系统及三方SaaS系统的集成与整合成为企业面临的重要挑战之一。特别是如何有效管理员工账号、权限、身份认证以及应用访问,成为保障企业信息安全、提升用户体验的关键。TOPIAM数字身份管控平台…

微信小程序对接发货功能

注:微信小程序对接发货功能 文档地址:https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/order-shipping/order-shipping.html php代码 common.php use think\Config; use think\Db; use fast\Http; us…

VS2022+QT5.15.2+MySQL8.4大集合

网上的教程都建议用Qt5,不要用6,不死心的尝试了整整一天失败了,乖乖用回5,qt5需要编译一下生成mysql的动态和静态库 1. mysql8.4安装 下载社区开发版,注意要64位 https://dev.mysql.com/downloads/mysql/ 配置一下数…

nacos连接异常did not find the Leader node;

目录 问题描述解决过程持久化节点真的是存在数据库吗? 问题描述 我搭建的是nacos伪集群,然后主要想着看看集群情况下,临时节点和持久节点的区别。 如果使用临时节点项目能够正常起来,一旦添加ephemeral: false项目就起不来了。 …

R语言绘图 --- 饼状图(Biorplot 开发日志 --- 2)

「写在前面」 在科研数据分析中我们会重复地绘制一些图形,如果代码管理不当经常就会忘记之前绘图的代码。于是我计划开发一个 R 包(Biorplot),用来管理自己 R 语言绘图的代码。本系列文章用于记录 Biorplot 包开发日志。 相关链接…