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编程~

相关推荐
憧憬一下12 分钟前
IMX 平台UART驱动情景分析:read篇--从硬件驱动到行规程的全链路剖析
arm开发·嵌入式硬件·嵌入式·linux驱动开发
丁总学Java1 小时前
在 Mac(ARM 架构)上安装 JDK 8 环境
arm开发·macos·架构
摆烂仙君3 小时前
《基于FPGA的便携式PWM方波信号发生器》论文分析(三)——数码管稳定显示与系统调试
fpga开发
萨文 摩尔杰3 小时前
FPGA中的电平标准
fpga开发
ThreeYear_s7 小时前
基于FPGA的FM调制(载波频率、频偏、峰值、DAC输出)-带仿真文件-上板验证正确
fpga开发
ThreeYear_s10 小时前
基于FPGA的2FSK调制-串口收发-带tb仿真文件-实际上板验证成功
fpga开发
白书宇14 小时前
19.QT程序简单的运行脚本
linux·arm开发·嵌入式硬件·物联网·arm
.......xxx20 小时前
arm学习总结
linux·arm开发·学习
qq7621182220 小时前
arm Rk1126 编译Qt工程报错: Could not find qmake spec
arm开发·qt
亮锅锅来啦1 天前
如何做含有identify抓信号的fpga版本(image或者Bit)
fpga开发