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

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

解决方法1:.在SDK的Run配置选项中,需要在STDIO Connection中选中“Connect STDIO to 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。修改了引脚分配之后,问题解决。


  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值