亚洲美女爱爱-夜夜添夜夜添夜夜摸夜夜摸-97碰成人国产免费公开视频-国产午夜大片-www黄av-国产94在线 | 亚洲-亚洲午夜久久久精品一区二区三剧-精品视频亚洲-久久久久国色av∨免费看-黄色片一区二区-69福利视频-国产老头和老头xxxxx免费-99精品视频一区在线观看-日韩三级黄色毛片-亚洲激情图片区-黄色a一级-99re6在线-91九色视频-日本欧美久久久-成人国产精品免费观看

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

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

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

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

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

關(guān)閉

?

關(guān)閉

主站蜘蛛池模板: 全部免费播放在线毛片 | 欧美激情按摩 | 免费手机av | 伊人av超碰久久久麻豆 | 久久精品日本啪啪涩涩 | 国产熟妇另类久久久久久 | 国产a视频精品免费观看 | 香蕉人人精品 | av无码不卡在线观看免费 | 欧美亚洲另类丝袜综合网 | 欧美拍拍视频免费大全 | 国产精品不卡在线 | 制服 丝袜 有码 无码 中文 | 欧美一区免费观看 | 国产一卡2卡3卡四卡精品网站免费国 | 永久黄网站色视频免费观看w | 无码专区无码专区视频网址 | 999视频在线观看 | 中文字幕av不卡电影网 | 激情婷婷丁香 | 美日韩精品 | 另类色综合 | 国产精品久久久久久一区二区三区 | 亚洲精品9999久久久久无码 | 高级会所人妻互换94部分 | 在线|国产精品女主播阳台 美女视频黄免费看 | 免费毛片在线播放免费 | 国产日韩欧美一区 | 6080yy午夜一二三区久久 | 国产免费观看久久黄av片 | 免费无码又爽又刺激高潮的动漫 | 国产精品99999 | 国产破处av| 91久久亚洲 | 国产传媒精品 | 色婷婷一区二区三区四区 | 成片在线观看 | 国产96在线 | 韩国 | 无码精品人妻一区二区三区湄公河 | 亚洲国产欧美日韩在线人成 | 色小说在线观看 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 亚洲欧洲无码av一区二区三区 | 国产日韩久久 | 熟妇人妻系列av无码一区二区 | 三级免费黄| 日本加勒比中文字幕 | 国产永久视频 | 日本乳喷榨乳奶水视频 | 女的被弄到高潮娇喘喷水视频 | 亚洲 欧美 日韩 综合aⅴ | 中文字幕 亚洲一区 | 免费高清黄色 | 2021亚洲国产精品无码 | 女人被躁到高潮免费视频软件 | 亚洲精品国产精品国产自2022 | 午夜不卡无码中文字幕影院 | 国产另类视频 | 国产在线一区二区香蕉 在线 | 国产真实乱免费高清视频 | 国产av午夜精品一区二区三区 | 色播影院性播影院私人影院 | 久久久橹橹橹久久久久高清 | 柠檬福利精品视频导航 | www国产精品内射老师 | 欧美乱妇狂野欧美在线视频 | 色综合色综合色综合 | 狠狠色噜噜狠狠米奇777 | 精品伊人久久久99热这里只 | 国产aⅴ爽av久久久久久 | 色在线亚洲视频www 天天做天天爱天天要天天 久久精品国产精品久久久 97人人模人人爽人人喊0 | 国产揉捏爆乳巨胸挤奶视频 | 国产福利久久久 | 国产无遮挡无码视频在线观看 | 日本美女黄色一级片 | 亚洲色图欧美视频 | 亚洲色图首页 | 亚洲人成网站在线播放动漫 | 国自产拍偷拍精品啪啪av | 中文字幕久久精品无码 | 精品福利av导航 | 久久99这里只有是精品6 | 黄色在线一区 | 久久久久久久久亚洲 | 久久精品国产77777蜜臀 | 久久精品国产99久久久古代 | 国产一区二区亚洲 | 欧美你懂得 | 亚洲 国产 日韩 欧美 | 色偷偷久久 | 亚洲成人播放 | 欧美肥胖老太vidio在线视频 | 色乱码一区二区三在线看 | 亚洲二区视频 | 亚洲国产成人久久一区www | 久久亚洲在线 | 精品夜色国产国偷在线 | 国产av电影区二区三区曰曰骚网 | 日本又黄又潮娇喘视频 |