Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记

编程知识 更新时间:2023-05-02 09:04:43

本文内容学习自正点原子ZYNQ领航者FOGA视频-p41

众所周知之,所有软件的开发学习都是从Hello World开始,Zynq PS也不例外。

图为ZYNQ嵌入式最小系统。

Memory用来存储数据、RS232用来与上位机通信。

1.它是使系统工作的最小条件。

2.它是其它系统建立的基础。

上图就是PS

下面就通过创建一个Hello World工程来学习PS的开发流程。

 打开软件

ZYNQ的开发不论是PL还是PS端都是要从Vivado中的创建工程开始,所以和PL端开发一样,首先打开Vivado18.3。

1. 创建工程

1.1 Porject Name

同PL端开发一样,PS端同样需要创建工程。

创建好工程路径和工程名称后我们点击Next。

1.2 Project Type

PS端的开发也是创建RTL工程,然后我们这里选择此时不指定源文件。

1.3 Default Part

这里选择好对应的芯片型号。

1.4  New Porject Symamry

工程创建完毕。

2. 创建PS

PS端的设计实际上会用到许多IP核然后将其组合起来,组成一个System,所以要从创建模块设计开始。

2.1 Create Block Design

起名为system。

2.2 Add IP

这里的Diagram就相当于一个“画板”,在这里添加IP。

这个就是ZYNQ的PS部分,将其双击将其添加进来。

这样就将PS添加到Diagram中了,之后我们将对他进行配置。

配置PS

2.3 DDR Configuration DDR配置

这里配置好存储器类型和型号。

2.4 Peripheral I/O Pins  外设引脚选择

这里我们要配置RS232协议的通信串口也就是UART来实现,在配置之前我们首先要看一下板子的设计原理图。

原理图里可以看到UART_RXD和UART_TXD对应的分别是PS_MIO14和PS_MIO15,所以接下来配置UART的时候,就要选择相对应的MIO。

这里就直接选中和原理图对应的引脚即可。

2.5 PS-PL Configuration

接下来配置串口通信的波特率

选择115200即可。

最后点击OK,配置完成。

注意:MIO电平的配置,要结合原理图,本实验中Bank1用的是3.3v,Bank2用的是1.8v。

2.6删除多余接口和自动配置端口

M_AXI_GP0和M_AXI_GP0_ACLK这两个是PS与PL端的IO口和对应的CLK,把下图勾选取消即可。

FCLK_0就是PS提供给PL端的CLK,因为没有用到PL所以这里也取消掉。

FCLK_RESET0_N这个是PS端提供给PL的复位接口,取消掉。

未用到的接口取消掉后,我们点击Run Block Autoamtion 自动完成模块端口的创建。

之后可以验证设计,点击此图标,可以自动验证设计是否有一些错误或者警告。

无错误和警告,设计完成。

2.7 生成输出结果

这里就是对刚才包含的每一个IP和都生成一个管脚约束or其它什么结果。

这里选择每个IP一个输出,因为我们只有一个ZYNQ PS的IP,所以也就只有一个输出。

生成后每个IP核都会有他综合、实现和仿真的一些结果,比如实现中的管脚约束等。

3 Create HDL Wrapper 生成顶层HDL

这个就是为我们的设计生成硬件描述文件的顶层文件,相当于用硬件描述语言将刚才的设计封装起来。

这里选择默认选项,当设计有更新的时候吗,它也会自动更新。

4.生成Bitstream并导入SDK

因为没有PL端设计,所以不需要生成Bitstream,直接导入SDK就行。

这里问你是否导入Bitstream文件,因为没有用PL所以不导入。

点击OK之后,工程文件夹下会多一个.sdk的文件夹,其中只有一个.HDF文件。

Hardware Design File这个文件就描述了硬件设计的一些信息。

然后启动SDK,后可以看到这个文件所包含的文件。

5.在SDK中创建工程

File-New-Application Project

设置好工程名其它都保持默认,会默认生成一个Board Support Package然后NEXT

这里选择一个空的例程。

然后就生成了,软件工程的一些文件。

这里的Board Support Package,应用软件是在硬件运行。最下面的文件夹就包含硬件信息,最上面文件夹就是软件应用。BSP就相当于两者的桥梁,会有一些驱动。

在src文件夹下,创建一个New Source File,命名为main.c

注意要带上.c

之后,就可以在右侧编辑代码,然后我们写入hello world的代码。保存后会自动编译。

6.下载验证

板子也要连接好串口线,PS和上位机通信用。

连接好与串口,波特率与之前的设置对应都是115200。

这个.elf就是需要下载到板子上的可执行文件。

右键hello_world1-Run As-1Launch on Hardware,下载到板子上。

下载成功之后,可以再SDK Terminal窗口中看到打印出来的hello world

这个Hello,World!来自于我们下载到板子上的程序运行之后,通过与上位机的串口发送到上位机中。

至此Hello World实验完成!。

 

更多推荐

Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记

本文发布于:2023-04-26 09:11:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/230ccec0299914987acff61953d11f2e.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:学习笔记   流程   Zynq   World   PS

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 105098文章数
  • 26370阅读数
  • 0评论数