Zynq学习笔记(二、zynq裸机程序之hello world)
(本系列笔记程序运行环境为xilinx官方开发板ZCU104)
-
1.学习目的
- 学习Zynq硬件设置流程
- 熟悉裸机开发流程
-
2.学习内容
Zynq裸机开发一般需要以下两步:Vivado硬件设计,SDK裸机程序开发
2.1Vivado硬件设计
建立vivado工程,打开vivado->新建工程->选择平台(例如:ZCU104,如果自己开发的板子就选对应芯片型号)->结束即可
BLOCK_DESIGN设计,点击左侧导航栏中的新建block design。在新建好的blockdesign中我们可以添加想要的IP,这里我们把所有能添加进block design的模块都叫ip。
添加第一个IP即所说的PS,添加完如下
我推荐采用采用这个Run Block Automation,这样工程会根据选定的开发板自动设置时钟,DDR等参数。如果是自己设计的板子也可以先选一个开发板完成这一步,然后再根据自己的设计做出调整,尤其是对于时钟设置,这样较为方便快捷。完成这一步后如下图。
图中所看到的这些IO都是PS与PL进行通信的接口,由于第一个程序只操作PS端,所以这些可以都不选。下面介绍一下PS如何进行设置。双击上图中IP打开PS设置如下图,首先看到一堆打对号的外设,在图中点击即可跳转到相应的接口设置,这里保留UART1,其余全部勾掉。然后打开PS-PL设置(红框),
打开PS-PL设置以后,勾掉上面两个FPD ,勾掉Reset接口,取消IRQ接口完成如下图
打开clock设置,选择输出时钟,勾掉PL0时钟 完成如下图
以上步骤完成后,PS端设置完成,由于PL端不需要设计所以接下来validate以下整个设计确保没有设置错误。点选如下图。
提示没有错误以后,选择新建HDL warper ,选择让vivado自主更新。
然后保存,选择生成bitstream文件。
2.2SDK裸机程序设计
将vivado工程设计导出,如下图,注意选择包含bitstream文件,会在工程的.sdk目录下看到一个HDF文件。选择launch SDK(红圈下面)即可启动SDK。
启动后等待SDK自动导入HDF文件。完成后如下图
新建appication project
工程名字填hello,选择next,如下图
选择hello world 例子工程,新建完成后如下图,默认设置下SDK会自动编译。
给电路板上电后下载bit文件如下图。
完成后选在debug 编译好的hello程序如下图。
启动debug后,SDK会进入debug窗口模式,可以在右上角切换edit模式和debug模式,如下图中红框
设置串口波特率和接口,可以使用SDK自带的SDKterminal 也可以使用自己喜欢的串口助手。如下图
设置完成后运行程序,可以看到串口助手的打印输出,如下图。
到目前为止,第一个hello world 程序建立和运行流程完成。
3.总结
熟悉了Vivado工程和SDK工程的基本建立和设置流程
熟悉了ZYNQ裸机程序的基本调试流程