一个调试小诀窍分享
set a flag for FPGA configuration
给FPGA配置设置一个标志
如果用户参考Intel教程
Embedded Linux Beginners Guide
制作SD卡image,那么FPGA配置文件(.rbf)是在uboot阶段被加载。
当某种原因(下文会讲).rbf加载失败,系统还会继续加载内核直到显示登录界面:
从表面上看,此时linux系统交互正常,rbf加载失败的提示信息也早被串口其他信息覆盖掉,所以经验不足的工程师可能无法第一时间获知rbf文件加载失败,从而导致他们后期要耗费大量时间调试直到定位到此问题。
但如果用户自己的工程也像DE10-Nano GHRD工程(DE10_NANO_SoC_GHRD 或者 DE10_NANO_SoC_FB)一样设计一个简单的LED电路(这个电路是一个计数器控制LED电平每隔0.5s翻转一次,以此形成LED闪烁效果):
就可以在加载过程中第一时间判断出rbf文件加载是否成功。.rbf加载成功后led[0]会闪烁:
当发现LED没有闪烁,说明rbf加载失败,可以从MSEL 设置和rbf文件路径等方向去继续定位问题。
确定MSEL设置
MSEL设置错误会导致rbf加载失败。
如果像这样选择File——Convert Programming Files生成.rbf:
这样生成是.rbf文件是未经压缩的,SD卡启动时需设置MSEL为00000, 如果设置为01010则LED[0]不会闪烁。
如果继续点击Properties并选择了Compression然后生成.rbf文件,则启动时要设置MSEL为01010。
如果是通过GHRD工程文件夹下面的Makefile文件自动生成的rbf文件,则SD卡启动时MSEL需要设置为01010, 因为Makefile里面设置为压缩模式:
关于MSEL模式设置与文件压缩之间的关系请参考Cyclone V handbook:
确定SD卡中rbf文件路径
如果rbf文件路径错了,rbf文件也加载不起来。
如果是用GHRD工程自带的Malefile文件生成boot.scr,就要在fat分区新建一个output_files文件路径然后将.rbf复制进去:
如果用户自己写的boot.script文件是这样设置:
就可直接将.rbf文件拷贝到SD卡的fat分区:
这么一个小小led设计, 现象直接,定位方便,是不是非常妙?所以初学者在SOC FPGA调试的过程当中也可以这样设计哦!
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !