久久午夜影院,91精品国产调教在线观看,日韩午夜免费,伊人久久大香线蕉av不卡

你的位置:首頁(yè) > 互連技術(shù) > 正文

嵌入式技巧:深度理解三種中斷調(diào)試方法

發(fā)布時(shí)間:2016-09-27 責(zé)任編輯:susan

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

 
 
在整個(gè)流程中,用戶首先需要建立工程并對(duì)工程做初步的配置,包括配置處理器和配置調(diào)試設(shè)備。編輯工程文件,包括自己編寫(xiě)的匯編和C語(yǔ)言源程序,還有工程編譯時(shí)需要編寫(xiě)的鏈接腳本文件,調(diào)試過(guò)程中需要編寫(xiě)存儲(chǔ)區(qū)映像文件和命令腳本文件,以及上電復(fù)位時(shí)的程序運(yùn)行入口的啟動(dòng)程序文件。
  
對(duì)后四種文件的理解很重要,其作用解釋如下。
  
(1) 鏈接腳本文件:在程序編譯時(shí)起作用。該文件描述代碼鏈接定位的有關(guān)信息,包括代碼段,數(shù)據(jù)段,地址段等,鏈接器必須使用該文件對(duì)整個(gè)系統(tǒng)的代碼做正確的定位。在SDRAM中調(diào)試程序、在FLASH中調(diào)試或固化后運(yùn)行的鏈接腳本文件應(yīng)加以區(qū)分。(在IDE開(kāi)發(fā)環(huán)境中使用擴(kuò)展名*.ld)
  
(2)命令腳本文件:在SDRAM中調(diào)試程序時(shí)起作用。在集成環(huán)境與目標(biāo)連接時(shí)、軟件調(diào)試過(guò)程中以及目標(biāo)板復(fù)位后,有時(shí)需要集成環(huán)境自動(dòng)完成一些特定的操作,比如復(fù)位目標(biāo)板、清除看門狗、屏蔽中斷寄存器、存儲(chǔ)區(qū)映射等。這些操作可以通過(guò)執(zhí)行一組命令序列來(lái)完成,保存一組命令序列的文本文件稱為命令腳本文件(在 IDE開(kāi)發(fā)環(huán)境中使用擴(kuò)展名*.cs)。
  
(3)存儲(chǔ)區(qū)映像文件:在SDRAM中調(diào)試程序時(shí)起作用。在軟件調(diào)試過(guò)程中訪問(wèn)非法存儲(chǔ)區(qū)在部分處理器和目標(biāo)板上會(huì)產(chǎn)生異常,如果異常沒(méi)有處理,則會(huì)導(dǎo)致軟件調(diào)試過(guò)程無(wú)法繼續(xù),為了防止以上問(wèn)題并調(diào)整仿真器訪問(wèn)速度以達(dá)到最合適的水平,提供這樣一種用于描述各個(gè)存儲(chǔ)區(qū)性質(zhì)的文件叫存儲(chǔ)區(qū)映像文件(在IDE開(kāi)發(fā)環(huán)境中使用擴(kuò)展名*.map)。
  
在程序的調(diào)試過(guò)程中可以選擇使用存儲(chǔ)區(qū)映像文件*.map和命令腳本文件*. cs配合程序的調(diào)試。
  
(4) 啟動(dòng)文件:它主要是完成一些和硬件相關(guān)的初始化的工作,為應(yīng)用程序做準(zhǔn)備。一般,啟動(dòng)代碼的第一步是設(shè)置中斷和異常向量;第二步是完成系統(tǒng)啟動(dòng)所必須的寄存器配置;第三步設(shè)置看門狗及用戶設(shè)計(jì)的部分外圍電路;第四步是配置系統(tǒng)所使用的存儲(chǔ)區(qū)分配地址空間; 第五步是變量初始化;第六步是為處理器的每個(gè)工作模式設(shè)置棧指針;最后一步是進(jìn)入高級(jí)語(yǔ)言入口函數(shù)(Main函數(shù))。
  
中斷程序設(shè)計(jì)
  
中斷調(diào)試方面可以采用類似矢量中斷動(dòng)態(tài)處理方式,讓中斷對(duì)應(yīng)的確定地址代碼調(diào)轉(zhuǎn)到RAM的固定地址處,定義一個(gè)函數(shù)指針指向該固定地址,就可以隨時(shí)通過(guò)替換RAM固定地址處的代碼,實(shí)現(xiàn)動(dòng)態(tài)改變中斷處理函數(shù)。
  
具體方法是:
  
(1)將中斷源函數(shù)指針定義在RAM中相對(duì)的固定地址,建立中斷矢量表;
  
void SetInterrupt (U32 vector, void (*handler)()){ InterruptHandlers[vector] = handler;}
  
(2)在程序中,調(diào)用具體某中斷源的中斷處理函數(shù);
  
如: SetInterrupt(IIC_INT,IICWriteIsr);
  
/* 聲明IIC中斷處理函數(shù),其中IIC_INT為 IIC中斷源序號(hào),IICWriteIsr為 IIC的寫(xiě)中斷處理函數(shù) */
 
(3)在0x18處的IRQ或0x1C處的FIQ中斷入口函數(shù)中,獲取中斷源、清除中斷掛起標(biāo)志、通過(guò)已定義的中斷源函數(shù)指針進(jìn)入用戶具體某中斷處理程序。
  
void ISR_IrqHandler(void){ IntOffSet = (unsigned int)INTOFFSET; Clear_PendingBit(IntOffSet>>2) ;(*InterruptHandlers[IntOffSet>>2])();// 調(diào)用具體某中斷處理程序}
  
采用動(dòng)態(tài)的中斷處理方法,在中斷源較多的情況下,中斷響應(yīng)時(shí)間和程序性能得到優(yōu)化。另外,在調(diào)試方面,此處理方法具有便于跟蹤調(diào)試的優(yōu)點(diǎn),并且根據(jù)需要,可以方便變換中斷處理函數(shù)。
  
中斷調(diào)試
  
軟件調(diào)試可以在SDRAM中或FLASH中進(jìn)行。在SDRAM中,讀寫(xiě)方便,訪問(wèn)速度快。一般軟件調(diào)試應(yīng)在RAM中完成,但當(dāng)RAM空間小于FLASH程序空間,程序只能在FLASH運(yùn)行和調(diào)試時(shí),或者用戶希望了解程序在FLASH中實(shí)際運(yùn)行情況時(shí),就可以在FLASH中進(jìn)行程序調(diào)試。
  
進(jìn)行中斷調(diào)試時(shí),應(yīng)注意中斷入口位于SDRAM中或FLASH中0x18或0x1c地址,鏈接腳本文件必須使整個(gè)系統(tǒng)的代碼正確定位于0x0起始處,但SDRAM或FLASH對(duì)應(yīng)的鏈接腳本文件及工程配置注意區(qū)別。
  
(1)程序在SDRAM中運(yùn)行
  
在SDRAM中調(diào)試,使用SDRAM對(duì)應(yīng)的鏈接腳本文件。調(diào)試過(guò)程需要以下幾步:編譯、鏈接工程;連接仿真器和電路板;下載程序(在IDE開(kāi)發(fā)環(huán)境中使用擴(kuò)展名*.elf);調(diào)試。
  
下載程序前必須啟動(dòng)命令腳本文件完成前述的一些特定的操作,命令腳本文件的啟動(dòng)在連接仿真器時(shí)自動(dòng)進(jìn)行,其中存儲(chǔ)區(qū)映射應(yīng)與程序在SDRAM中運(yùn)行時(shí)相同,保證整個(gè)系統(tǒng)的代碼正確定位于0x0起始處。下載程序的起始地址也為0x0,下載成功后便可進(jìn)行調(diào)試工作。
  
(2)程序在FLASH中運(yùn)行
  
在FLASH中調(diào)試,使用FLASH對(duì)應(yīng)的鏈接腳本文件。調(diào)試過(guò)程需要以下幾步:編譯、鏈接工程;連接仿真器和電路板;程序格式轉(zhuǎn)換(*.elf轉(zhuǎn)換為*.bin);固化*.bin程序;調(diào)試。
 
連接仿真器后不需要下載程序,存儲(chǔ)區(qū)映射由本身工程中啟動(dòng)文件運(yùn)行完成,不需要命令腳本文件。在本環(huán)境調(diào)試過(guò)程中,可以設(shè)置兩個(gè)硬件斷點(diǎn)。
  
(3)程序從FLASH中調(diào)到SDRAM中運(yùn)行
  
在某些應(yīng)用場(chǎng)合,強(qiáng)調(diào)程序運(yùn)行速度的情況下,希望程序在SDRAM中運(yùn)行,這樣就需要將FLASH中存儲(chǔ)的程序,在系統(tǒng)上電后搬運(yùn)到SDRAM某空間位置,然后自動(dòng)運(yùn)行。這種所謂的Bootloader技術(shù),在DSP系統(tǒng)中常被采用。
  
調(diào)試過(guò)程分兩步:
  
(a)首先將用戶程序在SDRAM中調(diào)試通過(guò),然后將*.bin文件固化到FLASH某一非0扇區(qū)地址空間;
  
(b) 將自己編寫(xiě)的Bootloader搬運(yùn)程序調(diào)試通過(guò)并將Bootloader.bin文件固化到FLASH的 0扇區(qū)地址空間,搬運(yùn)程序在系統(tǒng)上電后,將(a)中FLASH某一非0扇區(qū)地址空間存儲(chǔ)的程序,搬運(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空間的中斷程序入口表,就是整個(gè)用戶程序被搬運(yùn)到SDRAM的那一位置。
  
如:LDR PC, =HandleIRQ
  
// HandleIRQ位于SDRAM空間中斷程序入口表
要采購(gòu)仿真器么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書(shū)下載更多>>
熱門搜索

關(guān)閉

?

關(guān)閉

久久午夜影院,91精品国产调教在线观看,日韩午夜免费,伊人久久大香线蕉av不卡
麻豆成人在线观看| 国产美女久久| 欧美日韩国产高清电影| 久久久国产精品一区二区中文| 激情91久久| 国产麻豆一区二区三区精品视频| 精品欧美视频| 日韩专区欧美专区| 国产精品99一区二区三| 精品国产不卡一区二区| 性一交一乱一区二区洋洋av| 精品国产亚洲日本| 亚洲综合小说| 日韩精品一卡| 免费在线播放第一区高清av| 国产美女精品| 中文字幕系列一区| 久久爱www成人| 中文字幕一区二区av| 欧美精品资源| 国产伊人久久| 国产欧美欧美| 日韩欧美久久| 亚洲欧美日韩专区| 久久激五月天综合精品| 久久亚洲不卡| 樱桃成人精品视频在线播放| 亚洲国产福利| 91日韩欧美| 欧美激情麻豆| 麻豆精品少妇| 免费在线观看一区| 国产精品mv在线观看| 日韩不卡一区二区三区 | 婷婷视频一区二区三区| 欧美福利在线| 欧美精品自拍| 国语对白精品一区二区| 亚洲欧美日韩专区| 久久av在线| 亚洲无线观看| 日韩精品中文字幕吗一区二区| 日本综合视频| 国产高清精品二区| 精品国产精品久久一区免费式 | 日韩中文字幕一区二区高清99| 热久久免费视频| 色婷婷成人网| 久久成人高清| 欧美成a人免费观看久久| 国产91欧美| 久久精品欧美一区| 樱桃视频成人在线观看| 国产精品一区二区av日韩在线| 国产精品久久乐| 日韩精品诱惑一区?区三区| 美女毛片一区二区三区四区| 蜜臀久久久99精品久久久久久| 日精品一区二区三区| 美腿丝袜亚洲一区| 视频一区中文| 国产欧美日韩一级| 欧美日韩一二三四| 欧美日韩一视频区二区| 色一区二区三区| 国产精品日韩| 精品资源在线| 久久亚洲色图| 国产一区福利| 国产一区一一区高清不卡| 日韩精品第一区| 日韩精品免费视频人成| 午夜精品成人av| 日本在线不卡视频一二三区| 高清av一区| 日韩国产精品久久久久久亚洲| sm捆绑调教国产免费网站在线观看 | 天堂网av成人| 亚洲另类av| 性感美女一区二区在线观看| 日本va欧美va瓶| 伊人影院久久| 色偷偷偷在线视频播放| 欧美日韩亚洲国产精品| 亚洲性色av| 日本不卡一区二区| 樱桃成人精品视频在线播放| 国产精品伦理久久久久久| 日本综合精品一区| 免费一级片91| 黄色日韩精品| 午夜精品一区二区三区国产| 国产一区调教| 欧美日韩91| 黄色在线一区| 夜夜嗨av一区二区三区网站四季av| 久久激情五月婷婷| 久久成人一区| 久久性天堂网| 日韩中文欧美在线| 亚洲一区二区三区高清| 亚洲一级影院| 国产精品2023| 香蕉久久夜色精品国产| 99国产精品久久久久久久| 激情综合在线| 欧美特黄一区| 久久亚洲影院| 亚洲人成高清| 日韩一区二区三区在线看| 综合亚洲色图| 久久国产三级精品| 精品国产亚洲日本| 欧洲一级精品| 99在线精品免费视频九九视| 99精品99| 日韩成人午夜精品| 久久不见久久见中文字幕免费| 国产精品777777在线播放| 精品入口麻豆88视频| 日韩精品午夜| 久久99视频| 超碰超碰人人人人精品| 日韩久久电影| 石原莉奈在线亚洲三区| 亚洲精品国产日韩| 精品视频一区二区三区在线观看 | 在线亚洲成人| 欧美三级第一页| 精品久久网站| 亚洲一区二区免费看| 日韩和欧美一区二区三区| 久久婷婷国产| 午夜在线精品| 伊人www22综合色| 欧美一区二区三区久久精品| 国语精品一区| 久久最新视频| 91综合网人人| 日韩精品欧美大片| 日韩免费高清| 欧美一区激情| 蜜臀久久99精品久久一区二区| 日韩精品亚洲一区二区三区免费| 国产精品毛片久久| 日本精品一区二区三区在线观看视频| 美女视频免费精品| 午夜久久99| 国产精品原创| 国产精品伊人| 日韩精品一级中文字幕精品视频免费观看 | 久久久久蜜桃| 国产精品xvideos88| 老色鬼久久亚洲一区二区| 黄色在线观看www| 国产亚洲欧美日韩在线观看一区二区 | 国产九一精品| 亚洲一区二区三区在线免费| 电影天堂国产精品| 欧美激情亚洲| 国产精品亚洲欧美一级在线 | 黄色国产精品| 在线视频观看日韩| 中国字幕a在线看韩国电影| 另类小说一区二区三区| 久久国产精品毛片| 高清久久一区| 成人在线免费观看网站| 国产欧美日韩影院| 欧美国产先锋| 国产精品igao视频网网址不卡日韩| 日韩一区二区三区精品视频第3页| 亚洲黄色在线| 狠狠操综合网| 国产视频亚洲| 丝袜脚交一区二区| 天堂va欧美ⅴa亚洲va一国产| 免费成人av在线播放| 鲁大师影院一区二区三区| 日韩精品一级中文字幕精品视频免费观看 | 男女男精品网站| 性色av一区二区怡红| 亚洲免费影视| 美女久久一区| 亚州精品视频| 久久不卡日韩美女| 日韩中文影院| 亚洲神马久久| 久久精品99国产精品日本| 美女国产精品久久久| 国产精品高颜值在线观看| 免费福利视频一区二区三区| 久久久亚洲一区| 亚洲欧美久久| 婷婷综合社区| 伊人久久大香线蕉av超碰演员| 亚洲综合福利| 九九九精品视频| 精品在线99| 国产精品免费精品自在线观看|