OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 229|回复: 4

[XILINX] 正点达芬奇pro开发板使用microBlaze

[复制链接]

1

主题

3

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2026-7-30
在线时间
2 小时
发表于 5 天前 | 显示全部楼层 |阅读模式
1金钱
开发板达芬奇pro,xc7z100核心板,vivado/visit 2013.1版本, 按照开发板文档生成xsa工程,然后用viist工程监理blaze的hello world裸跑程序,最后希望生成一个img。fpga bit+应用elf下载到flash,从flash启动。但是通过gui的program device生成最终的download.bit。发现文件大小与fpga的bit大小一样,意味着没有包括应用的elf文件。全部生成过程看log没有任何错误和警告。特寻求帮助,看看哪里出问题了

回复

使用道具 举报

0

主题

107

帖子

0

精华

高级会员

Rank: 4

积分
545
金钱
545
注册时间
2026-1-29
在线时间
37 小时
发表于 5 天前 | 显示全部楼层
针对您的问题——生成包含FPGA bitstream和应用ELF的完整Flash镜像时,发现download.bit仅包含FPGA位流而未嵌入ELF文件,以下是详细的原因分析和解决方案:

一、问题原因分析
未正确导出带处理器的硬件描述文件(XSA)

在Vivado导出硬件时,若未勾选 “Include bitstream”,生成的XSA文件将缺少FPGA逻辑配置信息,导致后续无法加载ELF。
需确保导出的XSA包含完整的硬件系统(如ZYNQ/MicroBlaze处理器、UART等外设)。
软件工程未生成可引导的ELF文件

若应用工程未正确设置链接脚本或启动方式(如从Flash启动),生成的ELF可能不符合嵌入式启动要求,导致无法被合并到启动镜像中。
未使用正确的烧录流程合并bit与ELF

直接通过Vivado GUI的 “Program Device” 功能仅会烧录FPGA bitstream,不会自动嵌入ELF文件。需通过Vitis统一烧录流程或手动生成包含bit+ELF的启动镜像。
二、解决方案
1. 验证硬件导出流程
在Vivado中重新导出XSA文件

进入 File → Export → Export Hardware,务必勾选 “Include bitstream”,生成包含FPGA配置的XSA文件。
确认XSA文件中包含处理器系统(如ps7_cortexa9_0或microblaze_0)及外设配置。
检查XSA文件内容

使用文本编辑器打开XSA文件,搜索关键字如bitstream或processor,确认其包含FPGA配置和处理器定义。
2. 在Vitis中正确生成启动镜像
创建平台工程(Platform Project)

启动Vitis后,选择 File → New → Platform Project,导入之前生成的XSA文件。此步骤会自动生成板级支持包(BSP)和启动引导文件。
配置应用工程属性

右键应用工程 → Properties → C/C++ Build → Settings,检查链接脚本(Linker Script)是否指向正确的Flash起始地址。
确保 “Boot Image” 设置为从Flash启动。
生成启动镜像(Boot Image)

在Vitis菜单栏选择 Xilinx → Create Boot Image,指定输出路径和BOOT.bin文件名。
添加组件:
① FSBL:选择平台工程生成的fsbl.elf;
② Bitstream:添加Vivado生成的.bit文件;
③ Application:添加应用工程的.elf文件。
点击 “Create Image” 生成完整的BOOT.bin文件。
3. 烧录到Flash的正确方法
使用Vitis烧录Flash

连接JTAG调试器,在Vitis中选择 Xilinx → Program Flash,指定生成的BOOT.bin文件和Flash芯片型号(如Quad SPI Flash)。
确保擦除Flash前备份数据,避免因坏块导致失败。
验证烧录结果

断电重启开发板,通过串口终端观察是否输出“Hello World”。若仍无反应,检查以下项:
① 时钟与复位信号:确认FPGA逻辑和处理器时钟正常;
② Flash连接:测量Flash芯片的供电和片选信号是否正常。
三、常见问题排查
ELF文件未被识别

若生成的ELF文件大小异常,可能是链接脚本错误。尝试重置为默认模板。
权限不足导致烧录失败

Linux系统下需以管理员权限运行Vitis,或调整UDEV规则允许访问JTAG设备。
版本兼容性问题

Vivado 2013.1与Vitis可能存在兼容性限制,建议升级至最新版本或参考官方补丁说明。
综上所述,核心问题在于未通过Vitis统一流程合并bit与ELF,而是直接使用Vivado烧录bit文件。按照上述步骤操作后,应能生成包含FPGA配置和应用程序的完整Flash镜像。

回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2026-7-30
在线时间
2 小时
 楼主| 发表于 5 天前 | 显示全部楼层
我是严格按照【正点原子】达芬奇Pro之Microblaze开发指南+V2.0这个文档来操作的。因此并不存在你说的xsa没包含bit文件。我用的vivado+vitis都是2023.1版本,上面说的2013版本敲错了。
回复

使用道具 举报

4

主题

2202

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
6358
金钱
6358
注册时间
2018-10-21
在线时间
1884 小时
发表于 4 天前 | 显示全部楼层
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2026-7-30
在线时间
2 小时
 楼主| 发表于 4 天前 | 显示全部楼层
本帖最后由 mqu 于 2026-7-31 11:18 编辑

没有用例程的文件。我是按照文档的教程,一步一步的先vivado工程,然后visit工程。最后用visit的program device生成download.bit的时候,发现生成后的大小与fpga export出来的bit文件大小一样,然后反复检查vivado工程和visit工程,也问了AI,似乎都没有给出正确的答案。我们的应用场景是需要从flash中加载启动fpga bit文件,因此需要先生成正确的download.bit。如果有条件的话,你们可以按照文档做一遍,看看是否能重现我说的问题。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

如发现本坛存在违规或侵权内容, 请点击这里发送邮件举报 (或致电020-38271790)。请提供侵权说明和联系方式。我们将及时审核依法处理,感谢配合。

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2026-8-4 23:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表