提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
ZYNQ开发系列——PS开发之HelloWorld
- 前言
- 外设接口
- SDK建立工程相关操作记录
前言
俗话说一日不见,如隔三秋。两年没搞PS的开发,居然连HelloWorld怎么出来都不记得了,可见知识记录的重要性,知识真的是有保鲜期的,当年那是多么熟练,信手拈来,不进行记录的话,现在就忘得有多彻底。这也是我半年前决心开始写博客的原因之一,希望自己学到的技能记录下来,永远保鲜。
不过毕竟之前还是搞过,尽管现在看来又是从头开始学习,但应该进度不会像一开始这么慢,毕竟还是有一些记忆片段,有时候搞着搞着就触发了想起来了,因此希望这个回忆的过程能够尽量缩短,希望尽快能恢复到当年熟悉的这种程度。
外设接口
还是上一篇博文这个图,我们介绍一下有什么外设接口
(1)包含QSPI、ENET 0、SD 0、UART 0、UART 1
(2)DDR设置
(3)中断设置
后续会用到中断,目前暂时未连线
SDK建立工程相关操作记录
Vivado编译完成后
1、Vivado 菜单栏 File > Export > Export Hardware,因为设计包含 PL 部分,所以在 Export Hardware 弹窗勾选 Include bitstream,再点击 OK
2、Vivado 菜单栏 File > Launch SDK,打开的 SDK 窗口如下,其中 ad936x_ctl.bit 就是 PL 端 的 Bit 流文件
但是,试图打开下面其他 .c和.h文件的时候却显示不出来代码。
解决方法:
Window->Preferences->General->Workspace,选中Refresh on access。(访问时刷新)
这样就能看到这些文件的内容了
那我们export出来实际上是system.hdf文件,我们打开稍微看看,是一个地址映射表
把我目前关心的一部分摘录出来
我们自己定义的BUS_AXI的地址段在这里显示出来了。同时我们有两个串口外设,他们的起始地址分别是
Ps7_uart_0 0xe0000000~0xe0000fff
Ps7_uart_1 0xe0001000~0xe0001fff
先记住这两个地址。
3、建立 SDK 工程
SDK 菜单栏 File > New > Application Project
New Project 弹窗 Project name 填入 ps_hello_zynq,Next
Templates 窗口 选择 Hello World 工程,Finish
将helloworld.c代码改成
#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"
int main()
{
init_platform();
while(1)
{
print("Hello World\n\r");
sleep(1);
}
cleanup_platform();
return 0;
}
右键单击工程 ps_hello_zynq > Run As > Launch on Hardware (System Debugger)。串口就开始打印helloworld了。
但似乎FPGA BIT文件没有下载进去,注意,ZYNQ的PS和PL是可以完全独立运行的。那我们要下载bit文件,则需要在Run Configurations里面将Program FPGA勾选上
这样PL和PS都重新进行了加载。
还有一个疑问,在进行PS的外设配置的时候,我们配置了两个串口,但那到底是哪个串口在打印呢?带着这个疑问,下一篇继续。
更多推荐
ZYNQ开发系列——PS开发之HelloWorld
发布评论