嵌入式學習資料之ARM的三種中斷調試方法_第1頁
嵌入式學習資料之ARM的三種中斷調試方法_第2頁
嵌入式學習資料之ARM的三種中斷調試方法_第3頁
嵌入式學習資料之ARM的三種中斷調試方法_第4頁
嵌入式學習資料之ARM的三種中斷調試方法_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

嵌入式學習資料之ARM的三種中斷調試方法1嵌入式軟件開發(fā)流程鏈接腳本文件命令腳本文件存儲區(qū)映像文件啟動文件2中斷程序設計(1)將中斷源函數指針定義在RAM中相對的固定地址(2)在程序中,調用詳細某中斷源的中斷處置函數(3)在0x18處的IRQ或0x1C處的FIQ中斷入口函數中3中斷調試(1)程序在SDRAM中運轉(2)程序在FLASH中運轉(3)程序從FLASH中調到SDRAM中運轉參照嵌入式軟件的開發(fā)流程。第一步:工程建立和配置。第二步:編輯源文件。第三步:工程編譯和鏈接。第四步:軟件的調試。第五步:執(zhí)行文件的固化。在整個流程中,用戶首先需求建立工程并對工程做初步的配置,包括配置處置器和配置調試設備。編輯工程文件,包括本人編寫的匯編和C言語源程序,還有工程編譯時需求編寫的鏈接腳本文件,調試過程中需求編寫存儲區(qū)映像文件和命令腳本文件,以及上電復位時的程序運轉入口的啟動程序文件。對后四種文件的了解很重要,其作用解釋如下:1嵌入式學習資料之嵌入式軟件開發(fā)流程(1)鏈接腳本文件:在程序編譯時起作用。該文件描畫代碼鏈接定位的有關信息,包括代碼段,數據段,地址段等,鏈接器必需運用該文件對整個系統(tǒng)的代碼做正確的定位。在SDRAM中調試程序、在FLASH中調試或固化后運轉的鏈接腳本文件應加以區(qū)分?!苍贗DE開發(fā)環(huán)境中運用擴展名*.ld〕(1)嵌入式學習資料之鏈接腳本文件(2)命令腳本文件:在SDRAM中調試程序時起作用。在集成環(huán)境與目的銜接時、軟件調試過程中以及目的板復位后,有時需求集成環(huán)境自動完成一些特定的操作,比如復位目的板、去除看門狗、屏蔽中斷存放器、存儲區(qū)映射等。這些操作可以經過執(zhí)行一組命令序列來完成,保管一組命令序列的文本文件稱為命令腳本文件〔在IDE開發(fā)環(huán)境中運用擴展名*.cs〕。(2)嵌入式學習資料之命令腳本文件(3)存儲區(qū)映像文件:在SDRAM中調試程序時起作用。在軟件調試過程中訪問非法存儲區(qū)在部分處置器和目的板上會產生異常,假設異常沒有處置,那么會導致軟件調試過程無法繼續(xù),為了防止以上問題并調整仿真器訪問速度以到達最適宜的程度,提供這樣一種用于描畫各個存儲區(qū)性質的文件叫存儲區(qū)映像文件〔在IDE開發(fā)環(huán)境中運用擴展名*.map〕。在程序的調試過程中可以選擇運用存儲區(qū)映像文件*.map和命令腳本文件*.cs配合程序的調試。(3)嵌入式學習資料之存儲區(qū)映像文件(4)啟動文件:它主要是完成一些和硬件相關的初始化的任務,為運用程序做預備。普通,啟動代碼的第一步是設置中斷和異常向量;第二步是完成系統(tǒng)啟動所必需的存放器配置;第三步設置看門狗及用戶設計的部分外圍電路;第四步是配置系統(tǒng)所運用的存儲區(qū)分配地址空間;第五步是變量初始化;第六步是為處置器的每個任務方式設置棧指針;最后一步是進入高級言語入口函數〔Main函數〕。(4)嵌入式學習資料之啟動文件中斷調試方面可以采用類似矢量中斷動態(tài)處置方式,讓中斷對應確實定地址代碼調轉到RAM的固定地址處,定義一個函數指針指向該固定地址,就可以隨時經過交換RAM固定地址處的代碼,實現動態(tài)改動中斷處置函數。詳細方法是:2嵌入式學習資料之中斷程序設計(1)將中斷源函數指針定義在RAM中相對的固定地址,建立中斷矢量表;voidSetInterrupt(U32vector,void(*handler)()){InterruptHandlers[vector]=handler;}voidSetInterrupt(U32vector,void(*handler)()){InterruptHandlers[vector]=handler;}(1)將中斷源函數指針定義在RAM中相對的固定地址(2)在程序中,調用詳細某中斷源的中斷處置函數;如:SetInterrupt(IIC_INT,IICWriteIsr);/*聲明IIC中斷處置函數,其中IIC_INT為IIC中斷源序號,IICWriteIsr為IIC的寫中斷處置函數*/(2)在程序中,調用詳細某中斷源的中斷處置函數(3)在0x18處的IRQ或0x1C處的FIQ中斷入口函數中,獲取中斷源、去除中斷掛起標志、經過已定義的中斷源函數指針進入用戶詳細某中斷處置程序。voidISR_IrqHandler(void){IntOffSet=(unsignedint)INTOFFSET;Clear_PendingBit(IntOffSet>>2);(*InterruptHandlers[IntOffSet>>2])();//調用詳細某中斷處置程序}(3)在0x18處的IRQ或0x1C處的FIQ中斷入口函數voidISR_IrqHandler(void){IntOffSet=(unsignedint)INTOFFSET;Clear_PendingBit(IntOffSet>>2);(*InterruptHandlers[IntOffSet>>2])();//調用詳細某中斷處置程序}采用動態(tài)的中斷處置方法,在中斷源較多的情況下,中斷呼應時間和程序性能得到優(yōu)化。另外,在調試方面,此處置方法具有便于跟蹤調試的優(yōu)點,并且根據需求,可以方便變換中斷處置函數。嵌入式學習資料軟件調試可以在SDRAM中或FLASH中進展。在SDRAM中,讀寫方便,訪問速度快。普通軟件調試應在RAM中完成,但當RAM空間小于FLASH程序空間,程序只能在FLASH運轉和調試時,或者用戶希望了解程序在FLASH中實踐運轉情況時,就可以在FLASH中進展程序調試。進展中斷調試時,應留意中斷入口位于SDRAM中或FLASH中0x18或0x1c地址,鏈接腳本文件必需使整個系統(tǒng)的代碼正確定位于0x0起始處,但SDRAM或FLASH對應的鏈接腳本文件及工程配置留意區(qū)別。3嵌入式學習資料之中斷調試(1)程序在SDRAM中運轉在SDRAM中調試,運用SDRAM對應的鏈接腳本文件。調試過程需求以下幾步:編譯、鏈接工程;銜接仿真器和電路板;下載程序〔在IDE開發(fā)環(huán)境中運用擴展名*.elf〕;調試。下載程序前必需啟動命令腳本文件完成前述的一些特定的操作,命令腳本文件的啟動在銜接仿真器時自動進展,其中存儲區(qū)映射應與程序在SDRAM中運轉時一樣,保證整個系統(tǒng)的代碼正確定位于0x0起始處。下載程序的起始地址也為0x0,下載勝利后便可進展調試任務。(1)嵌入式學習資料之程序在SDRAM中運轉在FLASH中調試,運用FLASH對應的鏈接腳本文件。調試過程需求以下幾步:編譯、鏈接工程;銜接仿真器和電路板;程序格式轉換〔*.elf轉換為*.bin〕;固化*.bin程序;調試。銜接仿真器后不需求下載程序,存儲區(qū)映射由本身工程中啟動文件運轉完成,不需求命令腳本文件。在本環(huán)境調試過程中,可以設置兩個硬件斷點。(2)嵌入式學習資料之程序在FLASH中運轉(3)程序從FLASH中調到SDRAM中運轉在某些運用場所,強調程序運轉速度的情況下,希望程序在SDRAM中運轉,這樣就需求將FLASH中存儲的程序,在系統(tǒng)上電后搬運到SDRAM某空間位置,然后自動運轉。這種所謂的Bootloader技術,在DSP系統(tǒng)中常被采用。調試過程分兩步:(a)首先將用戶程序在SDRAM中調試經過,然后將*.bin文件固化到FLASH某一非0扇區(qū)地址空間;(3)程序從FLASH中調到SDRAM中運轉(b)將本人編寫的Bootloader搬運程序調試經過并將Bootloader.bin文件固化到FLASH的0扇區(qū)地址空間,搬運程序在系統(tǒng)上電后,將〔a〕中FLASH某一非0扇區(qū)地址空間存儲的程序,搬運到在SDRAM調試中同樣的空間位置,實現程序在SDRAM中運轉的目的。另外留意,由于

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論