国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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 空間中斷程序入口表

審核編輯黃昊宇

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

    關注

    5198

    文章

    20449

    瀏覽量

    334012
  • 調試
    +關注

    關注

    7

    文章

    646

    瀏覽量

    35654
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    什么是嵌入式應用開發?

    。 · ?醫療設備?:如心電圖儀、血壓計等。 開發工具和技術 嵌入式開發過程中常用的工具包括: · ?集成開發環境(IDE)?:用于編寫、編譯和調試代碼。 · ?編譯器?:將高級語言代碼轉換為機器語言
    發表于 01-12 16:13

    arm嵌入式主板優缺點

    嵌入式主板是嵌入在設備里面做控制、數據處理使用的CPU板 ,常見的有兩類,即基于X86的嵌入式主板和基于RISC的ARM 嵌入式主板。今天我
    發表于 01-08 07:08

    中斷還是輪詢?嵌入式外設驅動的最佳實踐!

    老老實實輪詢,還是開個中斷來接收?項目調試時發現,輪詢方式代碼好像更直觀,但CPU占用高得嚇人;而中斷看起來更“智能”,但又怕響應不及時。這種困惑可以說是嵌入式開發的經典問題。
    的頭像 發表于 01-04 09:15 ?379次閱讀
    <b class='flag-5'>中斷</b>還是輪詢?<b class='flag-5'>嵌入式</b>外設驅動的最佳實踐!

    分享一個嵌入式開發學習路線

    法,這些語法在嵌入式開發中至關重要。 2. 技能進階期(2-3個月) 從51單片機過渡到主流的ARM Cortex-M系列(嵌入式就業核心平臺),學會使用STM32單片機,掌握嵌入式
    發表于 12-04 11:01

    ARM嵌入式這樣學

    的內核就是ARM內核,它的主頻高很多,普通的都有幾百M。CPU緩存大,分有很多級的流水處理線,這樣大大提高了CPU利用率。這種IC的資源足以讓一個嵌入式操作系統正常跑起來,WINCE, LINUX
    發表于 12-04 07:48

    CW32嵌入式軟件開發的必備知識

    嵌入式系統中最常用的編程語言,因為它們提供了直接訪問硬件的能力,并且代碼執行效率高。 了解匯編語言,用于編寫底層驅動、中斷處理程序以及性能要求極高的代碼段。 對其他編程語言如Python、Java等有
    發表于 11-28 07:48

    嵌入式需要掌握哪些核心技能?

    : 1)C語言與底層編程 核心地位:C語言是嵌入式開發的基石,需精通指針操作、內存管理、位運算,直接操控硬件資源。 延伸技能:C++用于復雜項目架構設計,匯編語言優化底層性能(如啟動代碼、中斷處理
    發表于 10-21 16:25

    用是德MSO-X 3024T高效調試嵌入式系統的實戰指南

    嵌入式系統開發中,精準調試是攻克技術難題的關鍵。是德科技MSO-X 3024T示波器憑借其創新的觸控交互與多功能集成設計,為嵌入式系統調試提供了全新解決方案,以下是基于該設備的
    的頭像 發表于 10-17 11:51 ?301次閱讀
    用是德MSO-X 3024T高效<b class='flag-5'>調試</b><b class='flag-5'>嵌入式</b>系統的實戰指南

    入行嵌入式應該怎么準備?

    、CAN和Ethernet等)以及它們的工作原理和使用方法是必不可少的。此外,對于無線通信協議(如Bluetooth、Wi-Fi和LoRa等)的了解也是有益的。 五、調試和故障排除能力嵌入式系統開發中經
    發表于 08-06 10:34

    泰克示波器 MSO58 混合信號示波器在嵌入式系統調試中的核心技巧

    嵌入式系統的開發與調試中,泰克示波器 MSO58 混合信號示波器憑借其強大的功能和靈活的特性,成為工程師不可或缺的調試利器。掌握其核心調試技巧,能夠顯著提升
    的頭像 發表于 07-01 16:28 ?607次閱讀
    泰克示波器 MSO58 混合信號示波器在<b class='flag-5'>嵌入式</b>系統<b class='flag-5'>調試</b>中的核心技巧

    普源示波器MSO5074在嵌入式系統聯合調試中的高效實踐

    一、引言:嵌入式系統調試的挑戰與示波器的必要性 嵌入式系統作為核心控制單元廣泛應用于汽車、醫療設備、工業自動化等領域,其開發涉及硬件設計、軟件編程及實時調試等多個環節。傳統的
    的頭像 發表于 06-20 13:45 ?738次閱讀
    普源示波器MSO5074在<b class='flag-5'>嵌入式</b>系統聯合<b class='flag-5'>調試</b>中的高效實踐

    嵌入式力矩電機的設計方法研究

    摘 要:介紹一種用于機床直驅部件的嵌入式力短電機的設計和電磁結構優化方法。為了使嵌入式力矩電機滿足機床內部結構緊湊的要求,必須具有較高的磁密。通過計算分析,得到不同長徑比、不同磁極對數、不同槽極比
    發表于 06-11 15:08

    嵌入式開發入門指南:從零開始學習嵌入式

    開發(設備驅動、內核編譯) 4. 推薦的學習資源書籍:《嵌入式系統軟件設計基礎》《ARM Cortex-M系列嵌入式開發》在線課程:慕課網、B站嵌入式教學視頻實踐平臺:Arduino、
    發表于 05-15 09:29

    嵌入式適合自學嗎?

    構、時鐘系統、電源管理、存儲映射等。 嵌入式必學技術點↓↓↓ 1硬件與軟件的結合 2實時性要求與資源限制 3跨領域知識整合 4調試與測試困難 二)缺乏專業指導 1)容易走彎路:自學嵌入式的過程中
    發表于 04-27 09:54

    泰克MDO32示波器在嵌入式系統調試中的關鍵技術分析

    隨著現代電子技術的飛速發展,嵌入式系統在各個領域的應用日益廣泛,從消費電子到工業控制,再到汽車電子和航空航天等。嵌入式系統的復雜性不斷增加,使得調試工作變得尤為重要。泰克MDO32示波器作為一款
    的頭像 發表于 03-19 13:51 ?901次閱讀
    泰克MDO32示波器在<b class='flag-5'>嵌入式</b>系統<b class='flag-5'>調試</b>中的關鍵技術分析