SD卡镜像启动过程中如何第一时间获取FPGA配置状态?

描述

 

一个调试小诀窍分享

set a flag for FPGA configuration

给FPGA配置设置一个标志

如果用户参考Intel教程

Embedded Linux Beginners Guide

制作SD卡image,那么FPGA配置文件(.rbf)是在uboot阶段被加载。

Linux系统

当某种原因(下文会讲).rbf加载失败,系统还会继续加载内核直到显示登录界面:

Linux系统

从表面上看,此时linux系统交互正常,rbf加载失败的提示信息也早被串口其他信息覆盖掉,所以经验不足的工程师可能无法第一时间获知rbf文件加载失败,从而导致他们后期要耗费大量时间调试直到定位到此问题。

但如果用户自己的工程也像DE10-Nano GHRD工程(DE10_NANO_SoC_GHRD 或者 DE10_NANO_SoC_FB)一样设计一个简单的LED电路(这个电路是一个计数器控制LED电平每隔0.5s翻转一次,以此形成LED闪烁效果):

Linux系统

Linux系统

就可以在加载过程中第一时间判断出rbf文件加载是否成功。.rbf加载成功后led[0]会闪烁:

当发现LED没有闪烁,说明rbf加载失败,可以从MSEL 设置和rbf文件路径等方向去继续定位问题。

确定MSEL设置

MSEL设置错误会导致rbf加载失败。

如果像这样选择File——Convert Programming Files生成.rbf:

Linux系统

Linux系统

这样生成是.rbf文件是未经压缩的,SD卡启动时需设置MSEL为00000, 如果设置为01010则LED[0]不会闪烁。

如果继续点击Properties并选择了Compression然后生成.rbf文件,则启动时要设置MSEL为01010。

Linux系统

如果是通过GHRD工程文件夹下面的Makefile文件自动生成的rbf文件,则SD卡启动时MSEL需要设置为01010, 因为Makefile里面设置为压缩模式:

Linux系统

关于MSEL模式设置与文件压缩之间的关系请参考Cyclone V handbook:

Linux系统Linux系统

确定SD卡中rbf文件路径

如果rbf文件路径错了,rbf文件也加载不起来。

如果是用GHRD工程自带的Malefile文件生成boot.scr,就要在fat分区新建一个output_files文件路径然后将.rbf复制进去:

Linux系统

如果用户自己写的boot.script文件是这样设置:

Linux系统

就可直接将.rbf文件拷贝到SD卡的fat分区:

Linux系统

这么一个小小led设计, 现象直接,定位方便,是不是非常妙?所以初学者在SOC FPGA调试的过程当中也可以这样设计哦!

 



审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分