ZYNQ7000程序编译成功但烧写报错(使用Vitis2020.2)
一. DDR设置问题。
1.1 使能了DDR但没正确设置型号
烧写报错如下:
Error while launching program: Memory write error at 0x100000 Memory write aborted. Fault status 0x8, Domain 0x0
经排查:
发现是在创建ZYNQ7 PS时,在DDR配置界面使能了DDR,但没有正确设置DDR型号。如下图所示。
当时没设置型号是因为没有用到DDR,以为没用就可以随便哪个型号.但后来在烧写程序时报错。
推测原因是,烧写程序时会连同DDR的配置信息一起烧写进去,DDR配置不对时,这一步就会报错。
收获:即使DDR没使用,只要Enable了DDR就必须正确的设置型号以及一些其它参数。
1.2 ZYNQ外围有DDR, 但在IP核中没有使能DDR
Error while launching program: Memory write error at 0x100000. Cannot access DDR: the controller is held in reset
经排查:
收获: 只要硬件电路板上使用了DDR,PS的IP核中必须使能DDR并正确配置。
二. 烧写设置出错
此问题总结于本人在Xilinx官方中文论坛的发帖:Error while launching program: Cannot halt processor core, timeout
烧写报错如下:
Error while launching program: Cannot halt processor core, timeout
在用Vitis烧写程序的时候不定时会出现这个Error,有时能正常烧进去,有时报这个错误,基本2~3次烧写出现一次,不理解为什么?不论是直接单击快捷图标run,还是进入Run Configuration再点击run,这个error都会不定时出现。
经排查:
发现之前每次烧写都是勾选了Reset entire system,这个选项要进行的操作是:Reset entire system,Clear the FPGA fabric(PL),但我的ZYNQ工程中没有使用PL,所以这Clear the FPGA fabric(PL)(翻译成擦除FPGA布局?)应该是无用的。
我尝试不勾选reset entire system,发现要执行的操作还是5个,如下图。原本的Reset entire system,Clear the FPGA fabric(PL)变成了
The following processors will be reset and suspended.
1)ps7 cortexa9_0
PS 9.0核将被复位和暂停,对比之前的reset,只是没有了Clear PL。然后我进行了多次run。发现这个报错不再出现。
我再勾选上reset,run的报错又开始出现了,可见这个烧写报错和选项reset entire system有关。
然后我又找了一个使用了PL的工程,勾选上Reset entire system(虽然不勾选烧写好像也没什么问题,所以我其实不清楚此选项的好处是什么),Summary中显示的操作多了一条,2. Programing FPGA fabric using…,然后多次run,发现仍然不报错误。
得出结论
1.未使用PL时,选中了Reset entire system,run可能报错
2.未使用PL时,不选Reset entire system,run不报错
3.使用了PL时,即使选中了Reset entire system,run也不报错
所以,一个可行的办法是:在未使用PL时,不勾选Reset entire system,这样即使在Flash mode下,烧写也不会报错。而使用了PL,勾选Reset entire system也能成功烧写。
to be continue…
ZYNQ7000程序编译成功但烧写报错(使用Vitis2020.2)相关推荐
- arduino烧写报错:can‘t open device “\\.\COM1“
我的解决办法是拔掉usb,让它关机,停止运行一会,它便可恢复. 记得之前也有一次,那次解决好像是通过修改它的端口号,例如我将它com8修改为com1. 两个方法都可以尝试下,希望有帮助.
- ubuntu搭建基于arm-none-eabi-gcc,jlink驱动的平台,并实现stm32f103c8t6程序的编译链接和烧写
ubuntu搭建基于arm-none-eabi-gcc,jlink驱动的环境,并实现stm32f103c8t6程序的编译链接和烧写 说明: 本文内容基于VMware上的ubuntu虚拟机,vmware ...
- 【学习分享】2、创龙 TMS320C6748开发板程序加载和烧写(一)
此部分由于篇幅过长,将分为五个小点进行叙述,此处主讲基于仿真器的程序加载和烧写,所用器件为创龙TMS320C6748开发板.需要注意的点已在备注中进行说明. 如果需要从头开始进行本使用手册的阅读,欢迎 ...
- 【学习分享】2、创龙 TMS320C6748开发板程序加载和烧写(四)
此部分由于篇幅过长,将分为五个小点进行叙述,此处主讲基于SD卡烧写程序到NAND FLASH,所用器件为创龙TMS320C6748开发板.需要注意的点已在备注中进行说明. 如果需要从头开始进行本使用手 ...
- 【Qt】Qt程序编译成功,执行时报错:程序异常结束,crashed
[Qt]Qt程序编译成功,执行时报错:程序异常结束,crashed 错误打印信息 Starting E:*exe- 程序异常结束. E:*.exe crashed. 原因 使用到外部库,编译时,指定了 ...
- 【学习分享】2、创龙 TMS320C6748开发板程序加载和烧写(二)
此部分由于篇幅过长,将分为五个小点进行叙述,此处主讲基于串口的程序加载和烧写,所用器件为创龙TMS320C6748开发板.需要注意的点已在备注中进行说明. 如果需要从头开始进行本使用手册的阅读,欢迎阅 ...
- c语言程序编译成功运行失败,为什么这个程序编译成功但运行失败?
为什么这个程序编译成功但运行失败? 可以编译,就是运行失败.请问哪里出问题了. 所示的程序在屏幕上打印函数F(y)=e-y*sin(2πy)的曲线. #include #include #define ...
- win7 上面 gcc 编译的程序 a exe 运行的时候报错 a exe 已停止工作, 异常代码 c0000005
win7 上面 gcc 编译的程序 a.exe 运行的时候报错 a.exe 已停止工作, 异常代码:c0000005: 原因分析: 一开始我以为是我的代码的问题,后来查询了这个错误码发现原来是兼容性的 ...
- 解决只读模式U盘保护格式化或者dd写报错:ERROR: failed to open ‘/dev/sdb‘ in read-write mode: Read-only file system.
解决只读模式U盘保护格式化或者dd写报错:ERROR: failed to open '/dev/sdb' in read-write mode: Read-only file system. 或者: ...
最新文章
- cocos2d-x 输出debug信息
- jquery 3D分页翻转滑块
- Springboot 请求数据
- 创建多线程_你真的了解多线程吗?
- springboot 项目部署为war项目
- 创建简单的Flex组件
- 暴露年龄系列!这些手机系统 你用过几个?
- java与can总线开发_CANdbc编辑器的下载和入门介绍
- 404 Note Found 队 Alpha8
- 去除标题_1688如何通过黄金标题引爆流量?
- 可视化排班管理_人事工资管理系统就选i人事,提升算薪效率聚焦战略决策
- JAVA实现上传,下载,jxl操作Excel和邮件发送
- java用jimi.jar实现图片格式转换
- arduino动态刷新显示_玩家国度XG27UQ绝影游戏显示器评测:DSC加持的满血4K显示器...
- 深拷贝和浅拷贝的区别(必须掌握)
- fpga 中的slew rate 什么意思
- root改手机型号王者,手机root后怎么改手机型号
- 向量ab怎么用计算机打出来,数学ab上面加一横线-数学符号如何打?急急急!!!向量AB上的剪 – 手机爱问...
- 生成HTTPS协议需要的SSL证书
- 2018/09/29Web前端学习第五课