国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于ARM處理器的高效異常處理的解決方案

發布時間:2015-11-13 09:57    發布者:designapp
  摘要 嵌入式系統要求對異常及中斷處理器能快速響應。文中分析了ARM體系結構下異常處理特點,提出一種基于ARM處理器的高效異常處理解決方案,以LPC3250硬件平臺為基礎,對該方案進行了設計與實現。測試結果表明,該方案的異常處理更為高效。
  在航空航天、工業控制及醫療等領域中,嵌入式系統的安全性、可靠性以及高效性作用顯著,而異常是系統在運行過程中的突發事件,異常處理是否高效將直接影響整個系統的工作效率。為了確保嵌入式系統高效安全的運行,對處理器非正常模式下高效的異常處理機制的研究具有重要意義。
  1 異常概述
  嵌入式系統中異常/中斷是指由處理器內部或外部源產生并引起系統處理的一個事件。根據事件源的不同將異常分為“異常”和“中斷”兩種,異常指由處理器內部源所引起的事件,如非法指令執行異常,地址訪問異常等;中斷指由處理器外部中斷源引起的事件。嵌入式處理器對外部中斷源一般由中斷控制器進行統一管理并上報處理器。對于嵌入式系統,異常/中斷均會導致處理器打斷正常的程序執行流程,進入特定模式進行相應的異常處理。因此,對“異常”和“中斷”一般不作嚴格區分。
  作為嵌入式處理器,為了確保系統的實時性和程序執行的穩定性,ARM處理器支持完整的異常處理機制。ARM處理器共有7種異常類型,每種異常都有自己固定的異常向量地址,且在異常產生后,處理器會切換至相應的異常中斷模式,具體描述如表1所示。
  


  ARM支持多中斷嵌套,因此各異常有固定的優先級,依次為:復位、數據中止、FIQ、IRQ、預取指中止、未定義指令和SWI。各異常向量之間只有4 bit的空間,因此向量表中只能放置跳轉指令。通常異常處理結構如圖1所示。
  


  2 異常的響應和返回過程
  2.1 異常的響應
  當7種異常中的任何一個在允許響應的前提下發生時,處理器會進行必要的預處理,其動作如下:
  (1)前程序狀態字(Thc Current Program Status Register,CPSR)到各異常對應的備份程序狀態字(The Saved Program Status Regis ter,SPSR)中。
  (2)PSR中的控制位,使處理器進入相應的異常中斷模式,同時切換程序狀態為ARM狀態,禁止IRQ中斷,若異常響應為復位異常或FIQ異常,則還要禁止FIQ中斷。
  (3)回地址,并保存到相應的LR寄存器中。
  (4)量地址入PC,跳轉并執行中斷服務程序。
  2.2 異常的返回
  異常返回在異常服務程序完成后執行,內核需要用戶自行完成以下返回動作:(1)PSR寄存器的內容返還給CPSR寄存器。(2)R寄存器的值賦給PC。(3)入中斷服務程序時保存了部分通用寄存器的值,此時需恢復這些被保存的通用寄存器的值,且在清除中斷禁止位。
  3 異常服務程序的設計
  LPC3250硬件平臺,板上集成兩級中斷控制,共支持74路中斷源。其中一級中斷控制器可接收32路外部中斷請求,所有中斷通過FIQ或IRQ中斷信號通知ARM核,因此需中斷控制器管理所有外部中斷源。
  中斷控制器中,ATR(Activation Type Register)寄存器用于設置中斷的觸發方式,外部中斷支持沿觸發和電平觸發;APR(Activation Polarity Register)寄存器用于確定中斷類型,支持高電位有效和低電位有效;ITR(Interrupt Type Register)寄存器用于設置中斷方式,包括FIQ和IRQ兩種,其中FIQ的響應速度和優先級高于IRQ,支持數據傳輸或信道處理,通過獨有的寄存器來減少占用其他寄存器,通常嵌入式系統將所有外部中斷采用IRQ異常中斷模式管理;IER(InterruptEnable Register)寄存器用于對外部中斷進行屏蔽或使能;RSR(Raw Stat us Register)寄存器用于描述當前所有中斷源狀態。
  中斷源產生中斷時,處理器從IRQ或FIQ異常入口開始執行處理例程。通常嵌入式系統根據中斷源的差異存在不同的中斷服務程序,為了正確判斷出具體的中斷源,設計在異常向量表之外,系統維護關聯中斷控制器的中斷向量表,結構如表2所示。
  


  中斷向量表,用于存放具體中斷源對應的中斷服務程序的入口地址。當響應外設中斷請求時,進入中斷服務程序通過中斷控制器識別中斷源,并根據中斷向量表執行處理例程。
  LPC3250平臺設計,不通過中斷控制器進行中斷源的優先級控制,通過RSR寄存器獲取中斷源狀態后,由系統軟件進行中斷源優先級配置。中斷處理中由系統選擇當前最高優先級中斷,并進入對應中斷源的中斷處理例程,中斷處理過程如圖2所示。
  


  4 異常服務程序的實現
  嵌入式實時操作系統中,無論是實時響應并處理來自各個被控對象的實時信息,還是對任務執行時間的管理、資源的限時等待等,均需要時鐘的參與。因此,準確且具有足夠精度的時鐘對于實時系統必不可少。
  每次時鐘中斷發生,時鐘中斷服務程序都會被執行。因此時鐘中斷服務程序執行的頻率很高,每個系統周期都會被執行,這要求程序的處理高效、簡潔。
  由于ARM處理器中FIQ的響應速度和優先級均高于IRQ,因此采用FIQ方式實現對處理器時鐘中斷的處理,其他外部中斷由IRQ異常統一管理,異常處理結構圖如圖3所示。
  

                               
                                                               
                               
                  嵌入式時鐘常用于向操作系統通過調度單位,因此中斷狀態會持續直至完成調度處理,處理完成后由時鐘源進行中斷清除,以開始下一周期計時。根據應用需求,時鐘中斷應設置為電平觸發方式,通過APR和ATR寄存器,設置該時鐘為高電平觸發模式。通過ITR寄存器,設置該時鐘為FIQ中斷方式。
  LPC3250處理器可配置多路時鐘源,以μs級時鐘(Millisecond Timer)為例,根據應用需求,在中斷控制器中對該中斷源進行以下主要設置:
  Write(VIC_APR,0x3FF0EFF8);//通過APR寄存器MSTIMER_INT位置1,設置Millisecond Timer中斷為高電位有效
  write(VIC_ATR,0xFEFFFFFF);//通過ATR寄存器MSTIMER_INT位置0,設置Millisecond Timer為電平觸發
  write(VIC_ITR,0x08000000);//通過ITR寄存器MSTIMER_INT位置1,設置Millisecond Timer為FIQ中斷方式
  中斷控制器中設置完成后,當發生時鐘中斷時,PC指向FIQ的異常向量入口0x1C處,由于FIQ的向量入口為ARM處理器7種異常向量的尾地址,因此無需通過跳轉指令進行處理例程的跳轉。在該入口處對中斷進行以下主要處理:
  sub lr,lr,#4計算返回地址
  stmfd sp!,{ri-rm,lr}保存使用到的寄存器
  …
  mov lr,pc
  ldr pc,=IntHandler
  …
  Ldmfd sp!,{ri-rm,pc}中斷返回,表示將SPSR的值賦給CPSR
  其中IntHandler為中斷處理接口,主要完成為嵌入式操作系統提供基本的調度周期以及時鐘中斷源中斷狀態的清除。
  完成時鐘中斷源的清除,需設置定時器中ISR(Millisecond Timer Interrupt Status register)寄存器,具體設置如下:
  write(MSTIMER_ISR,0x1);//通過時鐘中ISR寄存器MATCH0_INT位置1,清除時鐘中斷源
  5 功能及性能測試
  在完成設計、編碼及交叉編譯后,對該異常機制在LPC3250目標機上的運行的情況進行功能和性能測試。
  5.1 功能測試
  采用FIQ模式進行定時器中斷處理,操作系統可正確獲取調度周期,表明該中斷處理功能正確。
  5.2 性能測試
  由于采用FIQ中斷模式進行時鐘中斷處理,在異常入口處無需額外的跳轉操作,直接進行時鐘中斷處理。且設計中FIQ只用于時鐘中斷,因此無需從中斷控制器獲取中斷號的獲取,減少了中斷處理指令,進而降低了處理時間。LPC3250平臺處理器主頻為266MHz,處理器時鐘周期為1/266μs,以1/1 000 s為單位向操作系統提供調度周期為例,總線周期誤差累計實驗數據如圖4所示。
  


  實驗中,隨著采樣調度周期數的不斷增加,IRQ模式下時鐘計時與理論值的處理器時鐘周期偏差數較FIQ模式明顯偏多,FIQ模式計時比IRQ模式更接近實際計時。結果表明,通過FIQ模式進行的時鐘中斷較IRQ方式更精確。
  6 結束語
  本文提出一種高效的異常處理方案,并以時鐘為例進行了驗證。通過實現驗證,采用上述FIQ中斷模式所設計的時鐘中斷控制程序,較IRQ模式的時鐘中斷方式更為高效,能為嵌入式系統提供更為精確的調度周期,實驗效果與預期相符。
                               
                                                               
                               
               
本文地址:http://m.qingdxww.cn/thread-156331-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉USB橋接器以及基于CAN的主機和自舉程序應用程序
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人久久久久 | 免费五级在线观看日本片 | 四虎国产精品永久地址51 | 日韩网站在线观看 | 欧美高清网站 | 亚洲 日本 欧美 中文幕 | 亚洲成人在线免费观看 | 啦啦啦视频在线观看影院 | 国产免费久久精品久久久 | www.亚洲视频.com | 三级视频网站在线观看视频 | 俄罗斯13一14处出血视频在线 | 亚洲激情区 | 国产高清日韩 | 四虎影视在线看免费观看 | 亚洲最色网站 | aa级国产女人毛片好多水 | 青青草国产在线 | 国产一级毛片午夜福 | av2021天堂网手机版 | 99热在线观看免费 | 自拍三区 | 久久久噜噜噜久久久 | 青青伊人久久 | 国产免费色视频 | 97夜色| 热99re久久精品天堂vr | 羞羞视频在线观看 | 亚洲免费成人网 | 97视频观看 | 久久资源总站 | 91免费版网站 | 在线免费一区 | 岛国精品成人 | 亚洲成人影院在线观看 | 无限资源第一页2018在线播放 | 毛片免费永久不卡视频观看 | 羞羞午夜爽爽爽爱爱爱爱 | 狠狠色综合色综合网站久久 | 18美女福利视频网站免费观看 | 看一级特黄a大片日本片黑人 |