chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

嵌入式Arm中斷調(diào)試方法

454398 ? 來源:alpha007 ? 作者:alpha007 ? 2022-12-08 15:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式軟件開發(fā)流程

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

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

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

(1) 鏈接腳本文件:在程序編譯時起作用。該文件描述代碼鏈接定位的有關(guān)信息,包括代碼段,數(shù)據(jù)段,地址段等,鏈接器必須使用該文件對整個系統(tǒng)的代碼做正確的定位。在 SDRAM 中調(diào)試程序、在 FLASH 中調(diào)試或固化后運(yùn)行的鏈接腳本文件應(yīng)加以區(qū)分。(在 IDE 開發(fā)環(huán)境中使用擴(kuò)展名*.ld)

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

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

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

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

中斷程序設(shè)計(jì)

中斷調(diào)試方面可以采用類似矢量中斷動態(tài)處理方式,讓中斷對應(yīng)的確定地址代碼調(diào)轉(zhuǎn)到 RAM 的固定地址處,定義一個函數(shù)指針指向該固定地址,就可以隨時通過替換 RAM 固定地址處的代碼,實(shí)現(xiàn)動態(tài)改變中斷處理函數(shù)。

具體方法是:

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

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

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

如:SetInterrupt(IIC_INT,IICWriteIsr);

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

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

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

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

采用動態(tài)的中斷處理方法,在中斷源較多的情況下,中斷響應(yīng)時間和程序性能得到優(yōu)化。另外,在調(diào)試方面,此處理方法具有便于跟蹤調(diào)試的優(yōu)點(diǎn),并且根據(jù)需要,可以方便變換中斷處理函數(shù)。

中斷調(diào)試

軟件調(diào)試可以在 SDRAM 中或 FLASH 中進(jìn)行。在 SDRAM 中,讀寫方便,訪問速度快。一般軟件調(diào)試應(yīng)在 RAM 中完成,但當(dāng) RAM 空間小于 FLASH 程序空間,程序只能在 FLASH 運(yùn)行和調(diào)試時,或者用戶希望了解程序在 FLASH 中實(shí)際運(yùn)行情況時,就可以在 FLASH 中進(jìn)行程序調(diào)試。

進(jìn)行中斷調(diào)試時,應(yīng)注意中斷入口位于 SDRAM 中或 FLASH 中 0x18 或 0x1c 地址,鏈接腳本文件必須使整個系統(tǒng)的代碼正確定位于 0x0 起始處,但 SDRAM 或 FLASH 對應(yīng)的鏈接腳本文件及工程配置注意區(qū)別。

(1)程序在 SDRAM 中運(yùn)行

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

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

(2)程序在 FLASH 中運(yùn)行

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

連接仿真器后不需要下載程序,存儲區(qū)映射由本身工程中啟動文件運(yùn)行完成,不需要命令腳本文件。在本環(huán)境調(diào)試過程中,可以設(shè)置兩個硬件斷點(diǎn)。

(3)程序從 FLASH 中調(diào)到 SDRAM 中運(yùn)行

在某些應(yīng)用場合,強(qiáng)調(diào)程序運(yùn)行速度的情況下,希望程序在 SDRAM 中運(yùn)行,這樣就需要將 FLASH 中存儲的程序,在系統(tǒng)上電后搬運(yùn)到 SDRAM 某空間位置,然后自動運(yùn)行。這種所謂的 Bootloader 技術(shù),在 DSP 系統(tǒng)中常被采用。

調(diào)試過程分兩步:

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

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

另外注意,因?yàn)橛脩魧?shí)際的程序中斷入口必須位于 FLASH 的 0x18 或 0x1c 地址,所以 Bootloader 搬運(yùn)程序還應(yīng)具有中斷入口的跳轉(zhuǎn)功能,即把 PC 指針由此轉(zhuǎn)向處于 SDRAM 空間的中斷程序入口表,就是整個用戶程序被搬運(yùn)到 SDRAM 的那一位置。

如:LDR PC, =HandleIRQ

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

審核編輯黃昊宇

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

    關(guān)注

    5175

    文章

    19973

    瀏覽量

    324379
  • 調(diào)試
    +關(guān)注

    關(guān)注

    7

    文章

    618

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    嵌入式達(dá)到什么水平才能就業(yè)?

    :包括GPIO、定時器、中斷、ADC 等外設(shè)的配置與調(diào)試,能實(shí)現(xiàn)如溫濕度采集、電機(jī)控制等功能掌握嵌入式 Linux 驅(qū)動開發(fā)基礎(chǔ):能編寫簡單字符設(shè)備驅(qū)動,實(shí)現(xiàn)設(shè)備的初始化、讀寫操作,會用內(nèi)核調(diào)
    發(fā)表于 09-15 10:20

    入行嵌入式應(yīng)該怎么準(zhǔn)備?

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

    泰克示波器 MSO58 混合信號示波器在嵌入式系統(tǒng)調(diào)試中的核心技巧

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

    普源示波器MSO5074在嵌入式系統(tǒng)聯(lián)合調(diào)試中的高效實(shí)踐

    一、引言:嵌入式系統(tǒng)調(diào)試的挑戰(zhàn)與示波器的必要性 嵌入式系統(tǒng)作為核心控制單元廣泛應(yīng)用于汽車、醫(yī)療設(shè)備、工業(yè)自動化等領(lǐng)域,其開發(fā)涉及硬件設(shè)計(jì)、軟件編程及實(shí)時調(diào)試等多個環(huán)節(jié)。傳統(tǒng)的
    的頭像 發(fā)表于 06-20 13:45 ?364次閱讀
    普源示波器MSO5074在<b class='flag-5'>嵌入式</b>系統(tǒng)聯(lián)合<b class='flag-5'>調(diào)試</b>中的高效實(shí)踐

    嵌入式力矩電機(jī)的設(shè)計(jì)方法研究

    摘 要:介紹一種用于機(jī)床直驅(qū)部件的嵌入式力短電機(jī)的設(shè)計(jì)和電磁結(jié)構(gòu)優(yōu)化方法。為了使嵌入式力矩電機(jī)滿足機(jī)床內(nèi)部結(jié)構(gòu)緊湊的要求,必須具有較高的磁密。通過計(jì)算分析,得到不同長徑比、不同磁極對數(shù)、不同槽極比
    發(fā)表于 06-11 15:08

    嵌入式開發(fā)入門指南:從零開始學(xué)習(xí)嵌入式

    開發(fā)(設(shè)備驅(qū)動、內(nèi)核編譯) 4. 推薦的學(xué)習(xí)資源書籍:《嵌入式系統(tǒng)軟件設(shè)計(jì)基礎(chǔ)》《ARM Cortex-M系列嵌入式開發(fā)》在線課程:慕課網(wǎng)、B站嵌入式教學(xué)視頻實(shí)踐平臺:Arduino、
    發(fā)表于 05-15 09:29

    嵌入式適合自學(xué)嗎?

    構(gòu)、時鐘系統(tǒng)、電源管理、存儲映射等。 嵌入式必學(xué)技術(shù)點(diǎn)↓↓↓ 1硬件與軟件的結(jié)合 2實(shí)時性要求與資源限制 3跨領(lǐng)域知識整合 4調(diào)試與測試?yán)щy 二)缺乏專業(yè)指導(dǎo) 1)容易走彎路:自學(xué)嵌入式的過程中
    發(fā)表于 04-27 09:54

    泰克MDO32示波器在嵌入式系統(tǒng)調(diào)試中的關(guān)鍵技術(shù)分析

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

    嵌入式主板選型與應(yīng)用指南

    嵌入式主板是專為嵌入式系統(tǒng)設(shè)計(jì)的核心硬件平臺,廣泛應(yīng)用于工業(yè)控制、物聯(lián)網(wǎng)、醫(yī)療設(shè)備等領(lǐng)域。以下是關(guān)于嵌入式主板的詳細(xì)介紹:1.嵌入式主板的核心特點(diǎn)緊湊尺寸:通常采用小型化設(shè)計(jì)(如Min
    的頭像 發(fā)表于 02-27 14:53 ?784次閱讀
    <b class='flag-5'>嵌入式</b>主板選型與應(yīng)用指南

    ARM架構(gòu)嵌入式主板特點(diǎn)

    極其廣泛。ARM架構(gòu)嵌入式主板有什么特點(diǎn)呢?一、工作時間及環(huán)境:ARM主板不受時間限制,可常開機(jī),無需人員維護(hù)。在有電源調(diào)節(jié)的情況下,只要接通電源,就會自動啟動,
    的頭像 發(fā)表于 12-31 16:03 ?1540次閱讀
    <b class='flag-5'>ARM</b>架構(gòu)<b class='flag-5'>嵌入式</b>主板特點(diǎn)

    ARM嵌入式通信協(xié)議及應(yīng)用

    隨著科技的飛速發(fā)展,嵌入式系統(tǒng)在各個領(lǐng)域扮演著越來越重要的角色。ARM處理器因其高性能、低功耗的特點(diǎn),在嵌入式系統(tǒng)中得到了廣泛應(yīng)用。通信協(xié)議作為嵌入式系統(tǒng)的重要組成部分,對于實(shí)現(xiàn)設(shè)備間
    的頭像 發(fā)表于 12-28 09:18 ?1338次閱讀

    ARM嵌入式編程高效技巧

    隨著物聯(lián)網(wǎng)和智能設(shè)備的快速發(fā)展,ARM嵌入式系統(tǒng)的應(yīng)用越來越廣泛。從智能手機(jī)到智能家居,再到工業(yè)自動化,ARM處理器幾乎無處不在。因此,掌握ARM
    的頭像 發(fā)表于 12-28 09:17 ?918次閱讀

    ARM嵌入式實(shí)時操作系統(tǒng)比較

    嵌入式系統(tǒng)領(lǐng)域,實(shí)時操作系統(tǒng)(RTOS)是確保任務(wù)按時完成的關(guān)鍵技術(shù)。ARM架構(gòu)因其低功耗、高性能的特點(diǎn),在嵌入式系統(tǒng)中得到了廣泛應(yīng)用。本文將對幾款流行的ARM
    的頭像 發(fā)表于 12-28 09:15 ?2108次閱讀

    嵌入式工程師常用的開發(fā)工具有哪些?

    。此外,ARM 公司的編譯器也備受青睞,針對 ARM 架構(gòu)的微控制器進(jìn)行了深度優(yōu)化,能夠生成高效的代碼。 三、調(diào)試工具 調(diào)試嵌入式
    發(fā)表于 12-20 15:29

    掌握調(diào)試技巧是攻克嵌入式學(xué)習(xí)難點(diǎn)的關(guān)鍵

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