新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM中斷處理的安全性與高效性研究

        ARM中斷處理的安全性與高效性研究

        作者: 時間:2009-07-02 來源:網絡 收藏

        摘要 重點分析了器的多種,包括普通、任務切換處理、可重入中斷處理和基于優先級的可重入性中斷處理的上下文保存技術,并給出了程序予以實現。對普通的前后臺系統和帶OS的嵌入式系統都有實用價值。
        關鍵詞 中斷 安全 上下文保存

        本文引用地址:http://www.104case.com/article/152438.htm


        引 言
        在嵌入式系統中常用的RISC處理器是核,它具有體積小、功耗低、成本低、性價比高的特點。然而,不管是哪種型號的ARM處理器,也無論該嵌入式系統中是否有操作系統,中斷處理,特別是IRQ中斷,始終是必須的,而中斷處理的核心問題是上下文的保存。能否安全而又地保存上下文,將影響一個嵌入式系統的性能與穩定。筆者對ARM處理器的普通中斷處理、任務切換中斷處理、可重人中斷處理和基于優先級的可重人性中斷處理的上下文保存技術進行分析與總結。為保證理論的正確性,核心的程序代碼都經過了實驗的檢測。


        1 系統中斷處理簡介
        ARM處理器的中斷主要有兩種:IRQ普通中斷和FIQ快速中斷。快速中斷本質上與普通中斷沒有太大的差別,它們在處理機制上有許多相同的地方。IRQ中斷是最頻繁的也是最為影響系統性能的,所以對它的與處理也就最有價值。
        下面簡要地介紹一下IRQ異常發生時ARM處理器的工作過程。在IRQ中斷發生時,ARM處理器的硬件會自動執行以下工作:
        ①將被中斷任務模式的CPSR值保存到IRQ模式中的SPSR寄存器中;
        ②將被中斷任務模式的PC值保存到IRQ模式中的LR寄存器中;
        ③將模式自動切換到IRQ模式,并將CPSR中的bit7位置1禁止后繼IRQ中斷的發生;
        ④PC被賦予0xl8的地址值,程序將從0xl8片開始執行。結合圖1,可以更好地理解ARM中斷處理機制的工作過程。

        2 普通中斷處理
        有些ARM嵌入式系統可能對中斷的要求比較低,即發生中斷后首先查詢相應的中斷源,然后進行中斷服務,最后從中斷服務程序中返回到被中斷處繼續運行程序。如何在這種簡單應用中保證安全又地處理中斷呢?“安全”就意味著中斷發生時上下文被完好保存不被破壞,“高效”就是說保存盡可能少的寄存器(當然是建立在安全的基礎上的)。由圖1可知,在普通中斷處理中,中斷服務就可以在IRQ模式中運行。根據ATPCS的調用規則,在子程序調用中ARM編譯器保存了R4~R11寄存器,因此就沒有必要再次保存。那么剩下的寄存器就必須予以保存,防止從中斷服務程序返回后被破壞。可以用匯編語言和C語言書寫處理代碼。


        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 黎平县| 莱州市| 天柱县| 张家口市| 大同市| 焦作市| 孟连| 原阳县| 凤庆县| 邯郸县| 望奎县| 齐齐哈尔市| 桐乡市| 灵山县| 郑州市| 芒康县| 九龙县| 吉木萨尔县| 建德市| 合肥市| 察哈| 乌恰县| 永靖县| 凤山县| 肥西县| 两当县| 江川县| 绥滨县| 威宁| 宜丰县| 吴忠市| 宜昌市| 乌鲁木齐县| 那曲县| 镇江市| 赣州市| 仲巴县| 乌兰县| 宁晋县| 黑龙江省| 方城县|