新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 嵌入式軟件開發(fā)流程及ARM的中斷調(diào)試方法介紹

嵌入式軟件開發(fā)流程及ARM的中斷調(diào)試方法介紹

作者: 時間:2011-11-15 來源:網(wǎng)絡 收藏
3

本文引用地址:http://m.butianyuan.cn/article/150058.htm

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

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

  (1)程序在SDRAM中運行

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

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

  (2)程序在FLASH中運行

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

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

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

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

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

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

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

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

  如:LDR PC, =HandleIRQ

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

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉