中斷
概念:是一個過程,是CPU在執行當前程序的過程中因硬件或軟件的原因插入了另一段程序運行的過程。因硬件原因引起的中斷過程的出現時不可預測的,即隨機的,而軟中斷是事先安排好的。
中斷源
概念:可以引起中斷的信號源。
異常優先級
ARM處理器中有7種類型的異常,按優先級從高到低的排列如下:復位異常(Reset)、數據異常(Data Abort)、快速中斷異常(FIQ)、外部中斷異常(IRQ)、預取異常(Prefetch Abort)、軟中斷異常(SWI)、未定義指令異常(Undefined interrupt)。
優先級最低的兩種異常是軟件中斷異常和未定義指令異常。因為正在執行的指令不可能既是一條軟中斷指令,又是一條未定義指令,所以軟中斷異常和未定義指令異常享有相同的優先級。
注意
在ARM處理器中(Exception)和中斷(Interrupt)有些差別,異常主要是從處理器被動接受異常的角度出發,而中斷帶有向處理器主動申請的色彩。此文中對“異常”和“中斷”不做嚴格區分;兩者都是指請求處理器打斷正常的程序執行流程,進入特定程序循環的一種機制。
異常
概念:異常由內部或外部源產生并引起處理器處理一個事件。在處理異常之前,處理器狀態必須保留,一遍在異常處理程序完成后,原來的程序能夠重新執行。同一時刻可能出現多個異常。
注意
當異常出現時,異常模式分組的R14和SPSR用于保存狀態。
當處理異常返回時,把SPSR傳送到CPSR,R14傳送到PC。
異常向量表
概念:當異常發生時,處理器會把PC設置為一個特定的存儲器地址(強制從異常類型對應的固定存儲地址開始執行程序)。用來記錄哪種異常對應哪個地址的表。
特點:
就是一塊內存空間,大小為32bytes,平均被分成了8份,每一份對應一個異常源,其中有一份是預留的;
在異常向量表中的每一份存放的是一個跳轉指令,跳轉到對應的異常處理函數;
異常向量表中每一份的位置是固定的,不能更改;
一般情況下,像啟動程序(uboot)起始位置就是異常向量表;
1.復位異常
概述:當處理器的復位引腳有效時,系統產生復位異常中斷,程序跳轉到復位異常中斷處理程序執行。復位異常中斷通常用于系統上電和系統復位兩種情況。
復位異常中斷處理程序的功能
設置異常中斷向量表;
初始化數據棧和寄存器;
初始化存儲系統,如系統中的MMU等;
初始化關鍵的I/O設備;
使能中斷;
處理器切換到合適模式;
初始化C變量,跳轉到應用程序執行;
2.未定義指令異常
概述:當ARM處理器執行協處理器指令時,它必須等待一個外部協處理器應答后,才能真正執行這條指令。若協處理器沒有響應,則發生未定義指令異常。若試圖執行未定義指令,也會出現未定義指令異常。未定義指令異常可用于在沒有物理協處理器的系統上,對協處理器進行軟件仿真,或通過軟件仿真實現指令集擴展。
3.軟中斷異常
概述:軟件中斷異常指令SWI進入特權模式,執行一些特權模式下的操作系統功能。
4.預取異常
概述:預取異常是由系統存儲器報告的。當處理器試圖去取一條被標記為預取無效的指令時,發生預取異常。如果系統中不包含MMU,指令預取異常中斷處理程序只是簡單地報告錯誤并退出;若包含MMU,引起異常的指令的物理地址被存儲到內存中。
5.數據異常
概述:數據異常時由存儲器發出數據中止信號,它由存儲器訪問指令Load/Store產生。當數據訪問指令的目標地址不存在或者該地址不允許當前指令訪問時,處理器產生數據訪問中止異常。
6.外部中斷異常
概述:當處理器的外部中斷請求引腳有效,并且CPSR寄存器的I控制位被清除時,處理器產生外部中斷異常。系統中各外部設備通常通過該異常中斷請求處理器服務。
7.快速中斷異常
概述:當處理器的快速中斷請求引腳有效且CPSR寄存器的F控制位被清除時,處理器產生快速中斷異常。
ARM處理器模式和異常
中斷響應
步驟
保護斷點,即保存下一個將要執行的指令的地址,就是把這個地址送入堆棧;
尋找中斷入口,根據不同的中斷源所產生的的中斷,查找不同的入口地址;
執行中斷處理程序;
中斷返回,執行完中斷指令后,就從中斷處返回到主程序,繼續執行;
上一篇:Linux之ARM(IMX6U)裸機匯編LED驅動實驗--驅動編寫
下一篇:ARM指令集(數據處理指令)
推薦閱讀
史海拾趣
隨著公司業務的不斷發展,Electech Electronics開始實施國際化戰略,積極開拓海外市場。公司先后在亞洲、歐洲和北美等地設立了分公司和辦事處,與當地的企業和渠道商建立了緊密的合作關系。同時,Electech Electronics還積極參加國際電子產品展會,展示公司的最新產品和技術,吸引更多的海外客戶。
隨著全球制造業的轉型升級,Empro Technology Corp也積極響應,開始了智能制造的探索和實踐。公司引進了先進的生產設備和管理系統,實現了生產過程的自動化和智能化。這不僅提高了生產效率,也保證了產品質量和穩定性。
為了進一步擴大市場份額,ECLIPTEK公司決定實施國際擴張戰略。公司先后在亞洲、歐洲和北美等地設立了分支機構,并在當地建立了生產基地。為了更好地滿足當地客戶的需求,ECLIPTEK還實施了本地化戰略,根據市場特點調整產品設計和生產流程。這一舉措不僅提高了公司的市場覆蓋率,還增強了其國際競爭力。
Decawave公司成立于2007年,總部位于愛爾蘭都柏林。成立之初,公司就專注于超寬帶(UWB)技術的研發。在初創階段,Decawave面臨著技術難度大、資金緊張等挑戰。然而,憑借對UWB技術的深入理解和研究,公司成功開發出了具有高精度定位能力的UWB芯片,這一技術突破為Decawave在電子行業中贏得了聲譽。
如今,BB公司已經走過了數十年的發展歷程,成為電子行業中一顆璀璨的明星。然而,公司并沒有因此停下腳步。相反,BB公司始終保持著強烈的創新意識和進取精神,不斷尋求新的發展機遇和挑戰。未來,BB公司將繼續致力于技術創新和市場拓展,為電子行業的繁榮發展貢獻更多力量。
以上是關于BB公司發展起來的五個相關故事。這些故事不僅展現了BB公司的成長歷程和發展成就,也凸顯了其在電子行業中的重要地位和影響。相信在未來的日子里,BB公司將繼續書寫更加輝煌的篇章。
隨著電子行業的快速發展,Aplus Flash Technology Inc公司意識到單憑自身的力量難以應對市場的快速變化。于是,公司積極尋求與其他企業的戰略合作,共同開發新產品、拓展新市場。通過與一家知名手機制造商的合作,Aplus Flash Technology Inc公司的閃存芯片成功應用于多款熱銷手機中,大大提高了公司的知名度和市場份額。此外,公司還與多家芯片設計公司和半導體制造商建立了緊密的合作關系,共同推動電子行業的發展。
求用VS2005或者2008,用SerialPort類寫的 串口通信程序,及相關的說明 如題,本人急需學會這個東西,麻煩各位高手幫忙,不要轉載其它不是用這個類寫的東西進行回答,特別是接收這塊的代碼,請給個詳細點的流程介紹,比如 在這個里面寫的托管能起到什么左右,它和DataReceived這個事件之間的關系是個怎么樣的。謝謝~~不 ...… 查看全部問答∨ |
|
原創重量級:TI Stellaris M3《LM3S9b96中文數據手冊》發布 TI的Stellaris M3系列,CAN、USB、Ethernet、DMA、EPI等外設獨具特色,功能強大,StellarisWare的加入使其易于上手,方便開發,同時官方提供了很多開源的軟件包供大家參考,并會不斷豐富。 同時TI收購luminary后,經過2年的沉淀,其功能強大的Temp ...… 查看全部問答∨ |
|
如上圖說示,用51單片機做的電子萬年歷,顯示子程序顯示的結果,光標應該總是在末尾,就如第一幅圖那樣,但是實際結果,每隔一定時間,光標總是會出現在第三幅圖所示的位置,然后又迅速跳動到末尾,我個人感覺好像是忙檢測的時間過長,導師顯示 ...… 查看全部問答∨ |
|
以前做的ADuCM360的ADC,發現除了ADC的處理時間外,如果進行下一次ADC,還要對某些寄存器進行設置。這樣連續轉換時的處理速度就比較慢。 再者,ADI的例程為了提高可讀性,就象C++中的“封裝”概念一樣,將函數做得有些煩瑣,并存在些判斷( ...… 查看全部問答∨ |
昨天收到了團購的F030R8的開發板,片子太新了,IAR里面沒有這個片子,下載了最新的6602,支持倒是支持了,但是只有選擇F030的片子,IAR就死在那兒了,誰知道怎么回事? CooCox與TrueSTUDIO支持030,還需要適應一下,看來要安裝Keil MDK5.0了。話 ...… 查看全部問答∨ |