<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > ARM的三種中斷調(diào)試方法簡介

          ARM的三種中斷調(diào)試方法簡介

          作者: 時間:2010-12-13 來源:網(wǎng)絡(luò) 收藏

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

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

            在SDRAM中,使用SDRAM對應(yīng)的鏈接腳本文件。過程需要以下幾步:編譯、鏈接工程;連接仿真器和電路板;下載程序(在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空間中斷程序入口表


          上一頁 1 2 下一頁

          關(guān)鍵詞: 簡介 方法 調(diào)試 中斷 ARM

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();