Zynq学习笔记(二、zynq裸机程序之hello world)

 

(本系列笔记程序运行环境为xilinx官方开发板ZCU104)

  • 1.学习目的

  1. 学习Zynq硬件设置流程
  2. 熟悉裸机开发流程
  • 2.学习内容

Zynq裸机开发一般需要以下两步:Vivado硬件设计,SDK裸机程序开发

2.1Vivado硬件设计

建立vivado工程,打开vivado->新建工程->选择平台(例如:ZCU104,如果自己开发的板子就选对应芯片型号)->结束即可

BLOCK_DESIGN设计,点击左侧导航栏中的新建block design。在新建好的blockdesign中我们可以添加想要的IP,这里我们把所有能添加进block design的模块都叫ip。

Zynq学习笔记(二、zynq裸机程序之hello world)_第1张图片

添加第一个IP即所说的PS,添加完如下

Zynq学习笔记(二、zynq裸机程序之hello world)_第2张图片

我推荐采用采用这个Run Block Automation,这样工程会根据选定的开发板自动设置时钟,DDR等参数。如果是自己设计的板子也可以先选一个开发板完成这一步,然后再根据自己的设计做出调整,尤其是对于时钟设置,这样较为方便快捷。完成这一步后如下图。

Zynq学习笔记(二、zynq裸机程序之hello world)_第3张图片

图中所看到的这些IO都是PS与PL进行通信的接口,由于第一个程序只操作PS端,所以这些可以都不选。下面介绍一下PS如何进行设置。双击上图中IP打开PS设置如下图,首先看到一堆打对号的外设,在图中点击即可跳转到相应的接口设置,这里保留UART1其余全部勾掉。然后打开PS-PL设置(红框

Zynq学习笔记(二、zynq裸机程序之hello world)_第4张图片

 

打开PS-PL设置以后,勾掉上面两个FPD ,勾掉Reset接口,取消IRQ接口完成如下图

Zynq学习笔记(二、zynq裸机程序之hello world)_第5张图片

打开clock设置,选择输出时钟,勾掉PL0时钟 完成如下图

 

Zynq学习笔记(二、zynq裸机程序之hello world)_第6张图片

 

以上步骤完成后,PS端设置完成,由于PL端不需要设计所以接下来validate以下整个设计确保没有设置错误。点选如下图。Zynq学习笔记(二、zynq裸机程序之hello world)_第7张图片

 

提示没有错误以后,选择新建HDL warper ,选择让vivado自主更新。

Zynq学习笔记(二、zynq裸机程序之hello world)_第8张图片

然后保存,选择生成bitstream文件。

2.2SDK裸机程序设计

将vivado工程设计导出,如下图,注意选择包含bitstream文件,会在工程的.sdk目录下看到一个HDF文件。选择launch SDK(红圈下面)即可启动SDK。 Zynq学习笔记(二、zynq裸机程序之hello world)_第9张图片

 

启动后等待SDK自动导入HDF文件。完成后如下图

Zynq学习笔记(二、zynq裸机程序之hello world)_第10张图片

新建appication project

Zynq学习笔记(二、zynq裸机程序之hello world)_第11张图片

工程名字填hello,选择next,如下图

Zynq学习笔记(二、zynq裸机程序之hello world)_第12张图片

选择hello world 例子工程,新建完成后如下图,默认设置下SDK会自动编译。

Zynq学习笔记(二、zynq裸机程序之hello world)_第13张图片

给电路板上电后下载bit文件如下图。

 

Zynq学习笔记(二、zynq裸机程序之hello world)_第14张图片

完成后选在debug 编译好的hello程序如下图。

Zynq学习笔记(二、zynq裸机程序之hello world)_第15张图片

 

启动debug后,SDK会进入debug窗口模式,可以在右上角切换edit模式和debug模式,如下图中红框

Zynq学习笔记(二、zynq裸机程序之hello world)_第16张图片

设置串口波特率和接口,可以使用SDK自带的SDKterminal 也可以使用自己喜欢的串口助手。如下图

Zynq学习笔记(二、zynq裸机程序之hello world)_第17张图片

设置完成后运行程序,可以看到串口助手的打印输出,如下图。

Zynq学习笔记(二、zynq裸机程序之hello world)_第18张图片

到目前为止,第一个hello world 程序建立和运行流程完成。

3.总结

熟悉了Vivado工程和SDK工程的基本建立和设置流程

熟悉了ZYNQ裸机程序的基本调试流程

你可能感兴趣的:(zynq学习笔记)