zynq 7010 PS 串口打印
前言
之前写过一篇文章《zynq 7010 PL 点灯例程》,介绍的是 zynq PL 部分的使用,今天这篇文章则是介绍 zynq PS 部分的使用。
在此之前,先总结点题外话
- PL 编程,核心思想是生成 bitstream 文件,加载到 FPGA 运行
- PS 编程,核心思想是编译出一份软件,加载到 PS 部分运行
- PS + PL 编程,核心思想是生成一份 bitstream 文件 + 一份软件
PS 和 PL 独立
PL 部分可以独立工作,正如之前文章介绍的点灯例程。
同样,PS 部分也可以独立工作,你可以使用 buildroot 编译出一份软件 sdcard.img(uboot + kernel + rootfs),烧录到 SD 卡中,PS 部分就可以加载这份软件来运行,而不需要任何 bitstream 文件。
但是,初学者会有这样一个疑问,为什么我看到网上的 PS 部分编程,还是要先打开 vivado 软件,添加 ZYNQ Programing System IP,并手动配置该 IP 参数,最终导出硬件设计文件 hdf。然后通过 SDK 打开,再添加应用程序,最终烧录到 zynq 中运行。
既然 PS 可以独立运行,为什么还要先使用 vivado 添加一个 zynq IP 呢?
这个 hdf 文件是干什么用的,它也需要被烧录到 zynq 吗?
现在来解答上述问题:
既然 PS 可以独立运行,为什么还要先使用 vivado 添加一个 zynq IP 呢?
》》ZYNQ Programing System IP 不同于其它 IP,zynq IP 并不使用 FPGA 资源构造电路,它只是 PS 部分的配置参数。
最终生成 hdf 文件。而其它通用 IP,则最终生成 bitstream 文件。
这个 hdf 文件是干什么用的,它也需要被烧录到 zynq 吗?
》》hdf 仅仅用来指导 SDK 或 petalinux 来构建软件,如决定 uboot 或 kernel 的编译选项、时钟频率参数、设备树文件等,它不会被烧录到 zynq。简单理解:hdf 文件是硬件工程师指导软件工程师来构建软件的一个文件。是硬件设计和软件设计之间的一个桥梁。当然,hdf 文件对于 zynq 来讲并不是必须的。
vivado
使用 vivado 创建一个新工程,添加 ZYNQ Programing System IP,
双击进入 zynq,主要配置两部分:DDR 和 I/O
根据外围实际电路中 DDR 的型号参数,配置 IP 中的 DDR 参数
根据外围电路中实际使用的串口,配置串口引脚及波特率参数,
配置 UART1 使用 24、25 这两个引脚,这是由 ebaz4205 板子实际电路决定的
zynq IP 配置好后,导出硬件设计文件
然后 Launch Vitis IDE
Vitis
新建一个 Application 工程
根据刚才 vivado 工程文件的 xsa 文件生成一个硬件平台,并使用该硬件平台
使用 helloworld 模板
Build Project
加载到 zynq 运行
串口查看输出结果