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

Posted DuinoDu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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。修改了引脚分配之后,问题解决。


以上是关于Vivado_MicroBlaze_问题及解决方法_汇总(不定时更新)的主要内容,如果未能解决你的问题,请参考以下文章

线程不安全三大问题_解决 同步方法及同步块

IIS_常见问题及解决方法

关于inodes占用100%的问题及解决方法

安装openstack 时 遇见的一些问题及解决方法!

编写高质量代码:改善Java程序的151个建议(第3章:类对象及方法___建议41~46)

SpringMVC的学习____4.前端,控制器参数名不一致以及对象传递的解决方法