备案网站可以做影视站,网站建设制作、微信公众号,网站 需求,适合夜晚使用的十大app摸鱼碎碎念#xff1a; 需要做ADC采集并在TFT屏幕实时显示波形#xff08;简易示波器#xff09; 发现只使用fpga实现比较困难 使用的是zynq#xff0c;刚好来把arm部分也学到 参考视频 与 教材文档 01_Zynq SoC FPGA的诞生_哔哩哔哩_bilibili (这是俺点开AXI4接口协…摸鱼碎碎念 需要做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 编号为 54n 因为 MIO 总数为 54 EMIO 是从 54 开始算的 #define PL_LED ( 54 0 ) //EMIO_LED 为 EMIO0 对应的 GPIO 编号为 54054 #define PL_KEY ( 54 1 ) //EMIO_KEY 为 EMIO1 对应的 GPIO 编号为 54155 CtrlS 保存设计 SDK 会自动编译在确认编译无误后接下来便可以开始进行板级验证了。
5.板级验证
连接好开发板
//摸鱼结束
//过程还是遇到了很多弯弯绕绕
//下次学习C编程~