那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

嵌入式Arm中斷調試方法

454398 ? 來源:alpha007 ? 作者:alpha007 ? 2022-12-08 15:11 ? 次閱讀

嵌入式軟件開發流程

參照嵌入式軟件的開發流程。第一步:工程建立和配置。第二步:編輯源文件。第三步:工程編譯和鏈接。第四步:軟件的調試。第五步:執行文件的固化。

在整個流程中,用戶首先需要建立工程并對工程做初步的配置,包括配置處理器和配置調試設備。編輯工程文件,包括自己編寫的匯編和 C 語言源程序,還有工程編譯時需要編寫的鏈接腳本文件,調試過程中需要編寫存儲區映像文件和命令腳本文件,以及上電復位時的程序運行入口的啟動程序文件。

對后四種文件的理解很重要,其作用解釋如下。

(1) 鏈接腳本文件:在程序編譯時起作用。該文件描述代碼鏈接定位的有關信息,包括代碼段,數據段,地址段等,鏈接器必須使用該文件對整個系統的代碼做正確的定位。在 SDRAM 中調試程序、在 FLASH 中調試或固化后運行的鏈接腳本文件應加以區分。(在 IDE 開發環境中使用擴展名*.ld)

(2)命令腳本文件:在 SDRAM 中調試程序時起作用。在集成環境與目標連接時、軟件調試過程中以及目標板復位后,有時需要集成環境自動完成一些特定的操作,比如復位目標板、清除看門狗、屏蔽中斷寄存器、存儲區映射等。這些操作可以通過執行一組命令序列來完成,保存一組命令序列的文本文件稱為命令腳本文件(在 IDE 開發環境中使用擴展名*.cs)。

(3)存儲區映像文件:在 SDRAM 中調試程序時起作用。在軟件調試過程中訪問非法存儲區在部分處理器和目標板上會產生異常,如果異常沒有處理,則會導致軟件調試過程無法繼續,為了防止以上問題并調整仿真器訪問速度以達到最合適的水平,提供這樣一種用于描述各個存儲區性質的文件叫存儲區映像文件(在 IDE 開發環境中使用擴展名*.map)。

在程序的調試過程中可以選擇使用存儲區映像文件*.map 和命令腳本文件*. cs 配合程序的調試。

(4) 啟動文件:它主要是完成一些和硬件相關的初始化的工作,為應用程序做準備。一般,啟動代碼的第一步是設置中斷和異常向量;第二步是完成系統啟動所必須的寄存器配置;第三步設置看門狗及用戶設計的部分外圍電路;第四步是配置系統所使用的存儲區分配地址空間;第五步是變量初始化;第六步是為處理器的每個工作模式設置棧指針;最后一步是進入高級語言入口函數(Main 函數)。

中斷程序設計

中斷調試方面可以采用類似矢量中斷動態處理方式,讓中斷對應的確定地址代碼調轉到 RAM 的固定地址處,定義一個函數指針指向該固定地址,就可以隨時通過替換 RAM 固定地址處的代碼,實現動態改變中斷處理函數。

具體方法是:

(1)將中斷源函數指針定義在 RAM 中相對的固定地址,建立中斷矢量表;

void SetInterrupt (U32 vector, void (*handler)()){ InterruptHandlers[vector] = handler;}

(2)在程序中,調用具體某中斷源的中斷處理函數;

如:SetInterrupt(IIC_INT,IICWriteIsr);

/* 聲明 IIC 中斷處理函數,其中 IIC_INT 為 IIC 中斷源序號,IICWriteIsr 為 IIC 的寫中斷處理函數 */

(3)在 0x18 處的 IRQ 或 0x1C 處的 FIQ 中斷入口函數中,獲取中斷源、清除中斷掛起標志、通過已定義的中斷源函數指針進入用戶具體某中斷處理程序。

void ISR_IrqHandler(void){ IntOffSet = (unsigned int)INTOFFSET; Clear_PendingBit(IntOffSet>>2) ;

(*InterruptHandlers[IntOffSet>>2])();// 調用具體某中斷處理程序}

采用動態的中斷處理方法,在中斷源較多的情況下,中斷響應時間和程序性能得到優化。另外,在調試方面,此處理方法具有便于跟蹤調試的優點,并且根據需要,可以方便變換中斷處理函數。

中斷調試

軟件調試可以在 SDRAM 中或 FLASH 中進行。在 SDRAM 中,讀寫方便,訪問速度快。一般軟件調試應在 RAM 中完成,但當 RAM 空間小于 FLASH 程序空間,程序只能在 FLASH 運行和調試時,或者用戶希望了解程序在 FLASH 中實際運行情況時,就可以在 FLASH 中進行程序調試。

進行中斷調試時,應注意中斷入口位于 SDRAM 中或 FLASH 中 0x18 或 0x1c 地址,鏈接腳本文件必須使整個系統的代碼正確定位于 0x0 起始處,但 SDRAM 或 FLASH 對應的鏈接腳本文件及工程配置注意區別。

(1)程序在 SDRAM 中運行

在 SDRAM 中調試,使用 SDRAM 對應的鏈接腳本文件。調試過程需要以下幾步:編譯、鏈接工程;連接仿真器和電路板;下載程序(在 IDE 開發環境中使用擴展名*.elf);調試。

下載程序前必須啟動命令腳本文件完成前述的一些特定的操作,命令腳本文件的啟動在連接仿真器時自動進行,其中存儲區映射應與程序在 SDRAM 中運行時相同,保證整個系統的代碼正確定位于 0x0 起始處。下載程序的起始地址也為 0x0,下載成功后便可進行調試工作。

(2)程序在 FLASH 中運行

在 FLASH 中調試,使用 FLASH 對應的鏈接腳本文件。調試過程需要以下幾步:編譯、鏈接工程;連接仿真器和電路板;程序格式轉換(*.elf 轉換為*.bin);固化*.bin 程序;調試。

連接仿真器后不需要下載程序,存儲區映射由本身工程中啟動文件運行完成,不需要命令腳本文件。在本環境調試過程中,可以設置兩個硬件斷點。

(3)程序從 FLASH 中調到 SDRAM 中運行

在某些應用場合,強調程序運行速度的情況下,希望程序在 SDRAM 中運行,這樣就需要將 FLASH 中存儲的程序,在系統上電后搬運到 SDRAM 某空間位置,然后自動運行。這種所謂的 Bootloader 技術,在 DSP 系統中常被采用。

調試過程分兩步:

(a)首先將用戶程序在 SDRAM 中調試通過,然后將*.bin 文件固化到 FLASH 某一非 0 扇區地址空間;

(b) 將自己編寫的 Bootloader 搬運程序調試通過并將 Bootloader.bin 文件固化到 FLASH 的 0 扇區地址空間,搬運程序在系統上電后,將(a)中 FLASH 某一非 0 扇區地址空間存儲的程序,搬運到在 SDRAM 調試中同樣的空間位置,實現程序在 SDRAM 中運行的目的。

另外注意,因為用戶實際的程序中斷入口必須位于 FLASH 的 0x18 或 0x1c 地址,所以 Bootloader 搬運程序還應具有中斷入口的跳轉功能,即把 PC 指針由此轉向處于 SDRAM 空間的中斷程序入口表,就是整個用戶程序被搬運到 SDRAM 的那一位置。

如:LDR PC, =HandleIRQ

// HandleIRQ 位于 SDRAM 空間中斷程序入口表

審核編輯黃昊宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5093

    文章

    19178

    瀏覽量

    307700
  • 調試
    +關注

    關注

    7

    文章

    589

    瀏覽量

    34064
收藏 人收藏

    評論

    相關推薦

    ARM架構嵌入式主板特點

    極其廣泛。ARM架構嵌入式主板有什么特點呢?一、工作時間及環境:ARM主板不受時間限制,可常開機,無需人員維護。在有電源調節的情況下,只要接通電源,就會自動啟動,
    的頭像 發表于 12-31 16:03 ?378次閱讀
    <b class='flag-5'>ARM</b>架構<b class='flag-5'>嵌入式</b>主板特點

    ARM嵌入式通信協議及應用

    隨著科技的飛速發展,嵌入式系統在各個領域扮演著越來越重要的角色。ARM處理器因其高性能、低功耗的特點,在嵌入式系統中得到了廣泛應用。通信協議作為嵌入式系統的重要組成部分,對于實現設備間
    的頭像 發表于 12-28 09:18 ?321次閱讀

    ARM嵌入式編程高效技巧

    隨著物聯網和智能設備的快速發展,ARM嵌入式系統的應用越來越廣泛。從智能手機到智能家居,再到工業自動化,ARM處理器幾乎無處不在。因此,掌握ARM
    的頭像 發表于 12-28 09:17 ?318次閱讀

    ARM嵌入式實時操作系統比較

    嵌入式系統領域,實時操作系統(RTOS)是確保任務按時完成的關鍵技術。ARM架構因其低功耗、高性能的特點,在嵌入式系統中得到了廣泛應用。本文將對幾款流行的ARM
    的頭像 發表于 12-28 09:15 ?521次閱讀

    掌握調試技巧是攻克嵌入式學習難點的關鍵

    就來說說嵌入式開發常見問題解決方法。 一、問題復現 穩定復現問題才能正確的對問題進行定位、解決以及驗證。一般來說,越容易復現的問題越容易解決。 1.1 模擬復現條件 有的問題存在于特定的條件下,只需要模擬出現問題的條件即
    的頭像 發表于 11-18 11:10 ?495次閱讀
    掌握<b class='flag-5'>調試</b>技巧是攻克<b class='flag-5'>嵌入式</b>學習難點的關鍵

    為何嵌入式控制器首選ARMxy?深度解析

    嵌入式ARM控制器是一種基于ARM架構的嵌入式系統控制器,廣泛應用于各種嵌入式系統中,包括工業物聯網關、邊緣計算網關、智慧城市、智能設備、工
    的頭像 發表于 09-21 10:09 ?370次閱讀
    為何<b class='flag-5'>嵌入式</b>控制器首選ARMxy?深度解析

    ARM處理器的異常中斷響應過程

    ARM處理器的異常中斷響應是嵌入式系統設計中一個至關重要的環節,它確保了系統在面對內部或外部事件時能夠穩定、可靠地運行。
    的頭像 發表于 09-10 11:18 ?1144次閱讀

    ARM MCU嵌入式開發 | 基于國產GD32F10x芯片+嵌入的開始

    嵌人系統的分類方法是依照系統主控制芯片的復雜性進行分類。可以分為型嵌入式系統、中等規模嵌入式系統、復雜嵌入式系統。 認識一下
    發表于 09-09 14:48

    嵌入式linux開發的基本步驟有哪些?

    之前,首先需要選擇合適的硬件平臺。硬件選擇需要考慮以下幾個方面: 1.1 處理器 嵌入式Linux開發需要一個處理器,常見的處理器有ARM、MIPS、PowerPC等。選擇處理器時,需要考慮處理器的性能、功耗、成本等因素。 1.2 存儲器
    的頭像 發表于 09-02 09:11 ?632次閱讀

    【「ARM MCU嵌入式開發 | 基于國產GD32F10x芯片」閱讀體驗】+書籍整體概況

    一、導言 上周收到《ARM MCU嵌入式開發 | 基于國產GD32F10x芯片》書籍,該紙質書籍內容可謂是面面俱到,由“清華大學出版社”出版,印刷第1版時間為2024年6月份,總共464千字
    發表于 08-25 22:48

    嵌入式C編程常用的異常錯誤處理

    。 3. 中斷服務程序 (Interrupt Service Routines, ISR) 在嵌入式系統中,中斷是處理異常情況的常用方法。ISR用于處理硬件
    發表于 08-06 14:32

    嵌入式系統怎么學?

    系統設計與調試:需要掌握嵌入式系統的設計方法調試技術,包括硬件設計、軟件設計、電路調試等,以確保系統的穩定性和可靠性。 隨著技術的不斷進
    發表于 07-02 10:10

    如何提升嵌入式編程能力?

    :掌握嵌入式系統的基本原理,包括中斷、并發、實時操作、低功耗設計等。 3. 實踐編程:通過實際編寫和測試代碼來提高技能。從簡單的LED閃爍程序開始,逐步過渡到更復雜的項目,如定時器PWM應用、串口、IIC
    發表于 06-21 10:01

    嵌入式片上系統和ARM哪個更好

    嵌入式片上系統和ARM各有其優勢,難以直接比較哪個更好,因為它們在不同的應用場景和需求下都有各自的價值。
    的頭像 發表于 03-28 15:14 ?574次閱讀

    嵌入式軟件開發應該掌握哪些知識?

    知識點學習 熟悉 Linux 的基本使用對于嵌入式軟件開發至關重要。包括文件系統的管理、用戶權限的控制、軟件包管理等。嵌入式開發人員需要能夠在 Linux 環境下進行開發、調試和部署工作。因此我們需要
    發表于 02-19 11:23
    太阳城百家乐分析解码| 阿玛尼百家乐官网的玩法技巧和规则 | 大发888娱乐新澳博| 大发888娱乐城官方下载| 大发888 ber娱乐场下载| 沙龙国际娱乐网站| 都匀市| 百家乐官网娱乐城提款| 现场百家乐官网百家乐官网| 百家乐官网巴厘岛上海在线| 台东县| 百家乐官网庄闲和各| 致胜百家乐官网下载| 百家乐有方法赚反水| 金字塔百家乐的玩法技巧和规则 | qq德州扑克下载| 临猗县| 百家乐官网必胜赌| 百家乐庄河闲的赌法| 威尼斯人娱乐城注册送彩金| 利好线上娱乐| 百家乐官网實戰後二穩賺| 百家乐赌场作弊| 速博百家乐的玩法技巧和规则| 金博士百家乐的玩法技巧和规则| 澳门百家乐官网怎洋赢钱| 永利百家乐官网的玩法技巧和规则| 百家乐投注外挂| 大发888赌场是干什么的| 乐百家百家乐官网游戏| 罗盘24山八卦| 大发888赌场官方下载| 黄金城娱乐城| 游戏百家乐官网的玩法技巧和规则 | 爱玩棋牌官方下载| 百家乐官网大转轮| 百家乐路单| 球讯网| 二爷百家乐官网的玩法技巧和规则| 皇马百家乐的玩法技巧和规则| 湖州市|