調(diào)試代碼對于懂程序的你來說不難,但一定麻煩。尤其在初次接觸一個程序而又尚未能完全理解時,你可能不清楚要如何才能快速找準(zhǔn)需要調(diào)試之處,全程設(shè)置斷點進入Debug模式是一種很糟心的做法。如果你有接觸英特爾?Max 10 開發(fā)套件片上閃存的代碼,會不會想要動手調(diào)試一些功能呢?
MAX 10 FPGA開發(fā)電路板
首先,我們需要了解英特爾?MAX 10 FPGA設(shè)備中片上閃存的結(jié)構(gòu)與功能。它分為兩個部分:
配置閃存:用于存儲硬件配置數(shù)據(jù)
用戶閃存:用于存儲用戶數(shù)據(jù)/軟件應(yīng)用
其中,片上閃存IP是用于訪問UFM的唯一IP。片上閃存IP內(nèi)核在Quartus Prime安裝過程就可以完成安裝,我們可從英特爾?FPGA IP庫選擇這個IP并為其設(shè)置參數(shù)。UFM內(nèi)存結(jié)構(gòu)根據(jù)f片上閃存IP內(nèi)核參數(shù)編輯器中指定的配置模式而改變。那么它總共有多少種內(nèi)部配置模式呢?請看下圖。
5種內(nèi)部配置模式
Nios II從UFM就地執(zhí)行,能夠最大限度地降低RAM使用率。因此該啟動解決方案十分適合需要限制片上內(nèi)存使用率的Nios II處理器應(yīng)用。從UFM就地執(zhí)行時,基于BSP設(shè)置,數(shù)據(jù)段(.radata、.rwdata或.eceptions)將從啟動內(nèi)存復(fù)制到RAM中,而只讀代碼段仍存放在片上閃存區(qū)域。
如何調(diào)試存儲在Max 10開發(fā)套件片上閃存中的代碼
Nios II處理器復(fù)位向量指向UFM的基地址,因此系統(tǒng)重置后,代碼會從UFM執(zhí)行,如果您使用源碼級調(diào)試工具調(diào)試應(yīng)用,則需要使用硬件斷點進行調(diào)試,因為UFM不支持隨機內(nèi)存存取。
那么具體該如何調(diào)試代碼呢?
我們可以創(chuàng)造一個從UFM就地執(zhí)行的Nios II應(yīng)用,并使用Nios II軟件構(gòu)建工具中的調(diào)試工具調(diào)試存儲在UFM中的代碼。先創(chuàng)建一個Quartus項目和Qsys系統(tǒng),如下圖,這是一個在Platform Designer中創(chuàng)建的設(shè)計。
如前所述,我們需要使用硬件斷點調(diào)試應(yīng)用。因此,在Qsys設(shè)計中,我們需要啟用硬件斷點。具體操作步驟詳見視頻。【滑稽】不過一定要將硬件斷點要啟用到位,具體可通過選擇JTAG調(diào)試選項卡查看。同時要注意,我們最多可以啟用四個硬件斷點。此外,片上閃存IP一定要添加到設(shè)計中,這樣能便于訪問UFM閃存。
在上面這個設(shè)計中,我們選擇使用的配置模式是單個未壓縮映像。接下來,可以將Nios II處理器中復(fù)位向量設(shè)置為片上閃存IP內(nèi)核,以通過從UFM就地執(zhí)行啟動Nios應(yīng)用。完成這些設(shè)置后,才能夠去生成系統(tǒng)。
接下來,我們可以在Quartus中編譯這個設(shè)計,創(chuàng)建SOF文件。同時,也可以在Nios II軟件構(gòu)建工具中創(chuàng)建一個簡單的Nios II應(yīng)用。在創(chuàng)建完硬件設(shè)計和軟件應(yīng)用后,我們可以使用轉(zhuǎn)換編程文件工具,創(chuàng)建包含UFM數(shù)據(jù)和SOF文件的POF文件。然后,可以使用Quartus編程工具將POF文件編程至Max 10中。
如上圖,已將POF文件編程至Max 10中,并重啟電路板。接下來才是真正開始調(diào)試存儲在片上閃存中的代碼。插入斷點后,想要調(diào)試該應(yīng)用,就得進行“應(yīng)用”、“調(diào)試”、“選擇配置”等一系列操作。(如有不明白的,請詳細(xì)看上面的視頻)在調(diào)試配置中,由于代碼存儲在片上閃存中,所以可能沒有選項“將elf下載到選中的目標(biāo)系統(tǒng)”選擇以啟動處理器并重置選中的目標(biāo)系統(tǒng)。
重點來了!
這個時候如果選擇“啟動停止”,則最多用一個硬件斷點,這也意味著您只能在代碼上設(shè)置另外三個斷點。而如果插入斷點超過4個,就會在開始調(diào)試代碼時遇到錯誤,因為只能使用四個硬件斷點。
-
處理器
+關(guān)注
關(guān)注
68文章
18924瀏覽量
227204 -
代碼
+關(guān)注
關(guān)注
30文章
4670瀏覽量
67762 -
編輯器
+關(guān)注
關(guān)注
1文章
797瀏覽量
30926
原文標(biāo)題:代碼怎么調(diào)?方法打包在此,拿走不謝~
文章出處:【微信號:FPGAer_Club,微信公眾號:FPGAer俱樂部】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論