4890|7

1382

帖子

2

TA的资源

五彩晶圆(初级)

楼主
 

Zynq学习笔记 (2)矿板运行SDK创建的PS简单工程 [复制链接]

本帖最后由 cruelfox 于 2023-7-22 17:40 编辑

  (接前一篇 Zynq学习笔记 (1)矿板小试FPGA开发流程 )

 

  Zynq PS部分的开发涉及到交叉编译ARM Cortex-A9 CPU运行的程序,也就是Zynq上面运行的程序。这部分工作不是由Vivado负责的,需要用另外一套软件工具:Xilinx SDK.

  SDK开发软件又需要Zynq的配置信息,也就是在Vivado工程中设置的PS时钟、DDR、外设那些。根据教程的介绍,在Vivado工程完成之后,使用Export功能,将硬件信息导出给SDK用。

  在导出的时候可选择包含bit文件,也就是FPGA部分的配置码流。原因是Zynq启动是由PS部分主导的,需要PS负责PL (FPGA)的初始化,不像单纯FPGA只要将bit烧写到外部flash中就可以自动加载了。导出的文件后缀是 .hdf

 

  SDK的IDE是Eclipse风格的,操作起来和常见的MCU近似了。

  在SDK中新建工程的时候,要选择目标硬件平台,而我必须用自己的板子而非所列的硬件,于是点旁边的New按钮。

  然后就要用到从Vivado中导出的硬件信息了,点Browse选择之前生成的.hdf文件,软件会自动取一个名称(可能会长,自己可以修改)。

  再回到上一个对话框,就看到目标硬件平台已经变成新建的了。

 

  先给新的软件工程取个名(比如我用的demo0),SDK还会同时创建一个BSP: demo0_bsp

  再点Next可以看到一些工程的模板供选择。作为新手有必要看一下工程怎么写的,可以选最简单的Hello World,这里选Memory Tests,顺带测试一下DDR的配置是否能工作。

 

  确认以后,SDK就自动创建工程并编译了,可以在Project Explorer中看到源文件等内容

  这看起来和开发MCU用的arm-none-eabi工具链有几分相似呢,编译结果也是得到elf文件。选中erf文件,点鼠标右键弹出菜单,就可以选择Debug或者Run来运行了。当然也类似于MCU开发环境,前提是调试器要连好了,这里需要Xilinx 下载器连到了Zynq的JTAG上面。

 

  我已经连好了矿板,确认FPGA可以下载bit文件的情况下,SDK中选择Debug或Run还是遇到了问题:

  这像是一个调试器的故障,矿板的PS部分本来已经运行起Linux了,可能不能被JTAG复位。

  关于Zynq的启动,我所知是有几种模式的。那么不让矿板的Linux启动,也许是可以解开这个问题。从电路图上分析,矿板是用的NAND flash启动方式,那么改一下 PS MIO[4]脚的上拉为下拉,就可以切换到JTAG boot模式避免板子自己启动了。

 

  矿板上的boot模式没有接死,上拉和下拉电阻都有,不用飞线直接改焊电阻就可以了。

  把照片上红框中R2578电阻焊下来,改焊到旁边R2585的位置上,矿板就不会从NAND启动了。

 

  改启动模式之后,在SDK中选择Run,顺利看到了串口打印出来的信息:

 

  作为模板提供的Memtest程序是在Zynq7010的片上SRAM中运行的。这一点可以由lscript.ld脚本佐证:

  为了分析程序怎么运行的,可以试着去反汇编一下demo0.elf 文件。使用SDK目录下面的arm-xilinx-eabi-objdump –d 来反汇编,可以看到所有代码部分。

  比如,在地址0地方是中断向量表:

  也可以查找main函数在哪里:

  整个程序的初始化部分比STM32 MCU还是显得代码量多,不过,想想能当成一个667MHz主频,有256MB DDR RAM可以用,还可以自己用verilog写外设的MCU板子来玩,可以发挥的地方就多了。

此帖出自FPGA/CPLD论坛

最新回复

这个架构的软件部分还是好写,驱动和示例非常全。   thanks for you   详情 回复 发表于 2024-5-3 22:46
点赞 关注
 

回复
举报

685

帖子

0

TA的资源

纯净的硅(高级)

沙发
 

我把我的矿板也找出来了。

跟着楼主学习了

此帖出自FPGA/CPLD论坛
 
 

回复

24

帖子

3

TA的资源

一粒金砂(中级)

板凳
 

这个架构的软件部分还是好写,驱动和示例非常全。

此帖出自FPGA/CPLD论坛
 
 
 

回复

855

帖子

3

TA的资源

版主

4
 

还有继续更吗?最近也打算玩一玩

 

此帖出自FPGA/CPLD论坛
 
 
 

回复

19

帖子

0

TA的资源

一粒金砂(中级)

5
 

支持楼主长期分享,正在学习ZYNQ编程中,感谢

此帖出自FPGA/CPLD论坛
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

6
 

现在是vitis2023.2了;建立freertos工程会报错

此帖出自FPGA/CPLD论坛
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

7
 
风过不留痕 发表于 2024-1-15 13:26 现在是vitis2023.2了;建立freertos工程会报错

已搞定

此帖出自FPGA/CPLD论坛
 
 
 

回复

154

帖子

0

TA的资源

一粒金砂(高级)

8
 

这个架构的软件部分还是好写,驱动和示例非常全。   thanks for you

此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表