Vivado_MicroBlaze_问题及解决方法_汇总(不定时更新)

时间:2024-12-15 17:03:57
标签: Vivado
2015-07-03 14:35 4453人阅读 评论(0) 收藏 举报
Vivado_MicroBlaze_问题及解决方法_汇总(不定时更新) 分类:
硬件(14) Vivado_MicroBlaze_问题及解决方法_汇总(不定时更新)

版权声明:本文为博主原创文章,未经博主允许不得转载。

1、 问题描述:从Vivado生成了mb软核文件,并下载到板子上。从Vivado中打开SDK,运行helloworld程序,控制台无法打印输出。

解决方法1:.在SDK的Run配置选项中,需要在STDIO Connection中选中“Connect STDIOto Console”,并将Port设置为“JTAG UART”。

解决方法2:确定问题出现的位置:hw_platform ? Board Support Package ? software application ? 确定的方法是替换,换一个软核,换一个BSP,或者换一个应用程序。我遇到的情况错误定位在BSP,而且是"../hello_world_bsp/microblaze_0/lib/libxil.a"这个文件导致的,问题的原因出在,和硬件相关联的某个库配置错了。于是乎,用SDK分别打开两个BSP工程(一个能用,一个不能用;我没找到直接打开BSP工程的方法,而是从Vivado中导入的),打开“system.mss”文件,单击“Modify this BSP's Settings”,一对比,发现,在standalone视图下,stdin和stdout的值都是axi_uartlite_0(因为我在Vivado配置软核时,添加了Uart IP核),把它们的值改为“mdm_1”。问题解决。

额外收获:在Vivado的microBlaze设计中,模块性非常明显。

首先,在Vivado中,用设计IP核的方式设计microBlaze子系统,生成一个能烧进板子的bit文件。

然后在Vivado中,“Export Hardware”,即生成一个SDK可识别的硬件平台(本质上就是一个文件夹,文件里面包含一个文件,mb_subsystem_wrapper.hdf)。

从Vivado中打开SDK后,SDK读取mb_subsystem_wrapper.hdf文件,新建与硬件平台相关的文件夹。

然后新建BSP、应用程序。BSP的作用,是为应用程序提供一个访问硬件的接口,比如"xgpio.h"等。应用程序只需调用BSP中的.h文件,就可以访问到硬件。

2、 问题描述:无法下载bit文件,并且错误提示信息中提到某个路径,“.hw.xml”之类的。

解决方法:可以把这个文件删了,重新建立Device。有时候在SDK中也会突然出现无法下载之类的问题,重启SDK,也能解决问题。

3、 问题描述:MicroBlaze找不到时钟

解决方法:在Vivado的Block Design中,检查Clock,再检查Reset信号。最后可能的情况是,Reset在板子上一直使能,软核当然就不能被clock了。我遇到这个问题是在参考David's Blog,里面说到从官网下载Nexys4的约束文件,然后就对着做了,后来发现,这个约束文件是对应Nexys4 REV B版本的,而我的板子是REV C。修改了引脚分配之后,问题解决。

转载:http://blog.****.net/DuinoDu/article/details/46741387