一個調(diào)試小訣竅分享
set a flag for FPGA configuration
給FPGA配置設(shè)置一個標(biāo)志
Embedded Linux Beginners Guide
制作SD卡image,那么FPGA配置文件(.rbf)是在uboot階段被加載。
當(dāng)某種原因(下文會講).rbf加載失敗,系統(tǒng)還會繼續(xù)加載內(nèi)核直到顯示登錄界面:
從表面上看,此時linux系統(tǒng)交互正常,rbf加載失敗的提示信息也早被串口其他信息覆蓋掉,所以經(jīng)驗不足的工程師可能無法第一時間獲知rbf文件加載失敗,從而導(dǎo)致他們后期要耗費大量時間調(diào)試直到定位到此問題。
但如果用戶自己的工程也像DE10-Nano GHRD工程(DE10_NANO_SoC_GHRD 或者 DE10_NANO_SoC_FB)一樣設(shè)計一個簡單的LED電路(這個電路是一個計數(shù)器控制LED電平每隔0.5s翻轉(zhuǎn)一次,以此形成LED閃爍效果):
就可以在加載過程中第一時間判斷出rbf文件加載是否成功。.rbf加載成功后led[0]會閃爍:
當(dāng)發(fā)現(xiàn)LED沒有閃爍,說明rbf加載失敗,可以從MSEL 設(shè)置和rbf文件路徑等方向去繼續(xù)定位問題。
確定MSEL設(shè)置
MSEL設(shè)置錯誤會導(dǎo)致rbf加載失敗。
如果像這樣選擇File——Convert Programming Files生成.rbf:
這樣生成是.rbf文件是未經(jīng)壓縮的,SD卡啟動時需設(shè)置MSEL為00000, 如果設(shè)置為01010則LED[0]不會閃爍。
如果繼續(xù)點擊Properties并選擇了Compression然后生成.rbf文件,則啟動時要設(shè)置MSEL為01010。
如果是通過GHRD工程文件夾下面的Makefile文件自動生成的rbf文件,則SD卡啟動時MSEL需要設(shè)置為01010, 因為Makefile里面設(shè)置為壓縮模式:
關(guān)于MSEL模式設(shè)置與文件壓縮之間的關(guān)系請參考Cyclone V handbook:
確定SD卡中rbf文件路徑
如果rbf文件路徑錯了,rbf文件也加載不起來。
如果是用GHRD工程自帶的Malefile文件生成boot.scr,就要在fat分區(qū)新建一個output_files文件路徑然后將.rbf復(fù)制進去:
如果用戶自己寫的boot.script文件是這樣設(shè)置:
就可直接將.rbf文件拷貝到SD卡的fat分區(qū):
這么一個小小led設(shè)計, 現(xiàn)象直接,定位方便,是不是非常妙?所以初學(xué)者在SOC FPGA調(diào)試的過程當(dāng)中也可以這樣設(shè)計哦!
審核編輯:劉清
-
FPGA
+關(guān)注
關(guān)注
1625文章
21620瀏覽量
601238 -
LED電路
+關(guān)注
關(guān)注
13文章
74瀏覽量
39922 -
Linux系統(tǒng)
+關(guān)注
關(guān)注
4文章
590瀏覽量
27316 -
SD卡
+關(guān)注
關(guān)注
2文章
558瀏覽量
63737
原文標(biāo)題:【調(diào)試小訣竅】SD卡鏡像啟動過程中如何第一時間獲取FPGA配置狀態(tài)?以及如何定位FPGA配置失敗原因?
文章出處:【微信號:友晶FPGA,微信公眾號:友晶FPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論