0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何調(diào)試存儲在Max 10開發(fā)套件片上閃存中的代碼

電子工程師 ? 來源:李倩 ? 2018-11-29 14:49 ? 次閱讀

調(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)試代碼時遇到錯誤,因為只能使用四個硬件斷點。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關(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)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    【xG24 Matter開發(fā)套件試用體驗】初識xG24 Matter開發(fā)套件

    是一個基于 EFR32MG24 系統(tǒng)的小封裝開發(fā)和評估平臺。EFR32xG24 Explorer 套件專注于快速原型化和概念創(chuàng)建 2.4 GHz 無線協(xié)議的 IoT 應(yīng)用程序,包括
    發(fā)表于 07-11 23:31

    【xG24 Matter開發(fā)套件試用體驗】深入了解Silicon Labs xG24 Matter開發(fā)套件

    開發(fā)套件(xG24-DK2601B套件)是一款緊湊、功能豐富的開發(fā)平臺,設(shè)計用于支持EFR32?無線Gecko系統(tǒng)。該
    發(fā)表于 08-27 20:23

    FRDM-KL25Z開發(fā)套件接口說明

    的接口功能和OpenSDA內(nèi)部板級支持包有關(guān),官方出廠默認(rèn)為大容量存儲設(shè)備閃存編程接口(MSD-FRDM-KL25Z_Pemicro_v105.SDA板級支持包),即無需安裝工具,開發(fā)套件會虛擬成一個
    發(fā)表于 01-05 15:26

    NI GOOP開發(fā)套件

    當(dāng)前代碼。 將功能添加至現(xiàn)有代碼(往往是由其他人創(chuàng)建而且未編檔)往往需要耗費較長的時間。 借助GOOP開發(fā)套件,即可分析現(xiàn)有的LabVIEW應(yīng)用程序并且自動生成設(shè)計描述。 通過自動生
    發(fā)表于 08-01 16:11

    GPIO和LED閃爍代碼做簡單的程序應(yīng)買什么開發(fā)套件

    HI Microchip,我是固件開發(fā)的新手。我安裝了MPLAB X IDE,正在為PIC18f16j11,PIC16進行固件開發(fā)。我GPIO和一些LED閃爍代碼
    發(fā)表于 04-23 13:57

    CANstarter-2開發(fā)套件

    CANstarter-2開發(fā)套件 “CANstarter-II開發(fā)套件”是一款非常高效的、基于PHILIPS 32bit ARM7芯片LPC2119的CAN-bus開發(fā)助手。該開發(fā)套件
    發(fā)表于 03-27 13:50 ?34次下載

    ZigBee開發(fā)套件內(nèi)容

    ZigBee開發(fā)套件內(nèi)容開發(fā)套件
    發(fā)表于 11-15 17:35 ?165次下載

    GDBServer編譯指南_基于 EasyARM-i.MX287A 開發(fā)套件

    本文基于 EasyARM-i.MX287A 開發(fā)套件,介紹如何編譯 GDBServer 軟件以使用開發(fā)套件的遠程調(diào)試功能。
    發(fā)表于 12-15 11:48 ?0次下載

    網(wǎng)蜂 Zigbee開發(fā)套件使用教程

    Zigbee 開發(fā)套件使用教程
    發(fā)表于 11-05 10:20 ?0次下載

    TI LaunchPad 開發(fā)套件的 Sidekick 系列套件

    針對TI LaunchPad 開發(fā)套件的Sidekick基本套件現(xiàn)在已對外銷售,你正好可以設(shè)計下一個項目時使用它。來自Seeedstudio的Sidekick系列套件用市面上很多常見
    發(fā)表于 04-26 13:59 ?1086次閱讀

    用以太網(wǎng) Ping的方式對 MAX10 FPGA 開發(fā)套件進行測試

    MAX10 FPGA 開發(fā)套件進行以太網(wǎng) Ping 測試
    的頭像 發(fā)表于 06-20 01:00 ?4749次閱讀
    用以太網(wǎng) Ping的方式對  <b class='flag-5'>MAX10</b> FPGA <b class='flag-5'>開發(fā)套件</b>進行測試

    什么是物聯(lián)網(wǎng)開發(fā)套件?如何挑選物聯(lián)網(wǎng)開發(fā)套件

    聯(lián)網(wǎng)開發(fā)套件概覽 設(shè)計工程師可以通過物聯(lián)網(wǎng)開發(fā)套件的新工具快速開發(fā)新的物聯(lián)網(wǎng) (IoT) 產(chǎn)品和系統(tǒng)。物聯(lián)網(wǎng)開發(fā)套件通常包含一套硬件、軟件
    發(fā)表于 05-29 17:55 ?5060次閱讀

    模擬微控制器軟件開發(fā)套件(AMSDK)-下載生產(chǎn)代碼

    模擬微控制器軟件開發(fā)套件(AMSDK)-下載生產(chǎn)代碼
    發(fā)表于 03-23 13:55 ?5次下載
    模擬微控制器軟件<b class='flag-5'>開發(fā)套件</b>(AMSDK)-下載生產(chǎn)<b class='flag-5'>代碼</b>

    不同階段如何選擇正確的藍牙開發(fā)套件

    選擇藍牙開發(fā)套件就像一個10歲的孩子糖果店里,有無數(shù)的選擇,從表面上看都很好,但很難做出正確的選擇,因為每個項目對套件的要求都是非常不同的。本文解釋了
    的頭像 發(fā)表于 05-10 15:10 ?1832次閱讀

    Neptune開發(fā)套件_2021

    Neptune開發(fā)套件指南
    發(fā)表于 08-18 12:28 ?3次下載