zcu102 zynq Mpsoc uart hello world

初识zcu102,第一步就是来一个hello world起航,瞎折腾了一番,总结并分享给各位,希望大家少走弯路。

希望读者,能够按图索骥,不费力气,尽快上手,以便利用此高大上的设备为祖国建设做贡献。

目录

zcu102简介

参考

开发环境

开发流程

vivado硬件设计

创建硬件工程

添加zynq mpsoc设计

配置芯片

验证设计生成bit文件

生成hdf文件

SDK设计软件

利用hdf文件生成硬件平台软件

创建hello app

fsbl工程

生成boot.bin

烧录测试


zcu102简介

Zcu102是xilink zynq MPsoc的一款评估FPGA开发板。集成了ARM核(PS)和FPGA(PL)两部分。Ps与pl通过axi总线通信,pl可以通过硬件编程实现一些软件算法的加速(图像,通信算法,AI算法,CNN等),把结果回传给PS。

通过vivado 配置ps和编码pl算法。实现硬件设计。

通过sdk导出bsp并编写app,实现软件设计。

软件初学者,熟悉环境的第一件事,就是调试一个hello world开始的。

参考

《ZCU102-quickstart.pdf》

《ZCU102原理图.pdf》

《UG1182.pdf》

还有网上的一些优质博客。

开发环境

  1. vivado2017.4(包含了sdk)
  2. zcu102评估板
  3. zynq Mpsoc

xilinx工具必须要对应版本匹配才能正常工作。这点要切记。

开发流程

vivado设计硬件

sdk开发软件

测试验证

vivado硬件设计

最简设计:PS配置一个uart串口,PL do nothing

创建硬件工程

打开vivado->quick start->create project->next

填写硬件工程名:minhw   最简硬件

选择工程路径->next

选择RTL(register transfer level)

选择board,厂商,版本型号

然后finish

添加zynq mpsoc设计

然后在IP INTERGETER->Create Block Design->修改Block Design name

在sources里生成了xx.bd文件(block design),点击open block design弹出diagram 硬件模块设计图像界面

添加芯片zynq Mpsoc,点击“+”好添加IP(知识产权,别人设计好的硬件模块),输入zynq找到zynq MPsoc,双击选择

自动生成如下如的zynq mpsoc芯片。

配置芯片

双击模块图标得到芯片配置界面

配置uart:IO configuration->low speed->IO peripherals->UART->UART0,UART1

两个uart都配置

其他基础配置参考《ug1182》

配置DDR:本来DDR可以使用默认的配置,新款DDR为镁光的16bit位宽,需要重新配置

配置如下:我的新16bit位宽的镁光DDR4。先选一个镁光的DDR,然后修改为16bit位宽的配置。如果是8bit位宽的DDR则使用镁光默认的即可。其他厂商的ddr,也参考对应配置。

 

然后连接时钟线:不然会报错。

 

验证设计生成bit文件

然后在检验设计,鼠标右键validate design

执行成功:

在block design中的design source的xx.bd文件鼠标右键generate output products

执行成功:

同样在点击block design文件鼠标右键产生wapper文件

然后综合,执行(也可以直接点击generate bitstream)。在design runs可以查看综合进展。

 

这里我点击generate bitstream,然后默认点击。

综合成功后。点击取消即可。导出bit文件和hdf文件。

此时已经在工程目录下生成了bit文件:xx/xx.runs/imple_1/xxx_wapper.bit

生成hdf文件

然后点击vivado FILE->export ->export hardware->默认确定。此时已经生成xxproj/xx.sdk/xx_wapper.hdf文件。这个xx.hdf文件用于sdk构建硬件平台和bsp,最后基于bsp编写软件。

包bit文件拷贝到xxx.sdk目录下,方便后续生成boot.bin文件。需要用到bit文件(硬件code)。

 

SDK设计软件

利用hdf文件生成硬件平台软件

vivado FILE->Launch SDK->default ok生成sdk硬件平台code。

然后我们需要在sdk创建bsp和app应用。

创建hello app

SDK FILE ->NEW ->Applicant project 工程名hello

使用默认配置,然后next,不要选finish。

选择模板helloworld工程finish。

sdk自动生成hello.elf文件。如果没有,点击hello工程鼠标右键build project。生成的hello.elf文件在工程下面的debug目录下。

至此hello world工程已经建立并生成了hello.elf可执行文件。那么我们如何烧录到zcu102并调试呢。

fsbl工程

要烧录zynq mpsoc必须要生成image bin文件,需要一个fsbl.elf文件,bit文件和app  hello.elf文件。

那fsbl.elf文件哪里来呢,这个需要自己建立一个fsbl工程,不要怕,这个是xilinx sdk的一个模板工程,自动生成,不用修改一行代码。毕竟我们现在还不知道怎么改代码。

fsbl是个什么东西呢?其实就是一个BootLoader。

建立fsbl工程,生成fsbl.elf文件。

SDK FILE ->NEW ->Applicant project命名fsbl-->next 选择FSBL模板工程,然后直接build project。生成fsbl.elf文件在fsbl工程目录下的debug目录下。

生成boot.bin

然后SDK xilinx->create boot image

烧录测试

生成boot.bin后,sdk  xilinx program flash烧录boot.bin到zcu102板子上。

连接jtag线到zcu102上,然后点击program。大概需要几分钟。

 

连接串口和jtag:串口在ZCU102板子上的位置

连接串口到secureCRT,或者其他串口上位机工具。输出打印如下:

串口配置默认为115200 。com口查看设备管理器COM。

至此一个完成的zcu102的uart   hello world工程就完毕了。

 

如果有疑问,欢迎多多交流。如有错误,请不吝指正。

 

  • 10
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值