嵌入式操作係統中斷機製詳解
嵌入式操作係統中斷機製詳解
中斷控製是計算機發展中一種重要的技術。最初它是為克服對I/O接口控製采用程序查詢所帶來的處理器低效率而產生的。中斷控製的主要優點是隻有在I/O需要服務時才能得到處理器的響應,而不需要處理器不斷地進行查詢。由此,最初的中斷全部是對外部設備而言的,即稱為外部中斷(或硬件中斷)。但隨著計算機係統結構的不斷改進以及應用技術的提高,中斷的適用範圍也擴大,出現了所謂的內部中斷(或異常),是為解決機器運行時所出現的某些隨機事件及編程方便而出現的。因而形成了一個完整的中斷係統。中斷控製是所有計算機係統的一個核心模塊,不同的硬件平台,有不同的中斷機製.不管怎樣,中斷機製最核心的部分是中斷向量表,每一種硬件體係根據自己的實現提供一張中斷向量表。
中斷向量表:
此向量表提供了所有支持的中斷定義以及相應的中斷服務程序,當發生異常時,首先要保存當前的處理器狀態,然後進入到相應的異常向量地址,一般來說在異常向量地址是一個跳轉指令,使程序進入相應的異常處理過程。
X86中,中斷向量表存儲於存儲器的前1024字節中,它包括256種不同的4字節中斷向量。
ARM中,中斷向量表存儲於存儲器的低端或者高端地址的前0x1c(依賴於硬件的具體配置),它支持7種類型的異常,其中第一個中斷向量是複位中斷向量,當係統複位後,從此開始重新執行。
在Motorola的68K中,中斷向量表占用存儲器的1024字節中,它包括256種不同的中斷向量。其地址根據VBR的配置的不同而不同,其中第一個中斷向量是複位中斷向量,當係統複位後,從此開始重新執行。
中斷種類:
根據中斷向量表,可以把這些中斷具體分為同步中斷,異步中斷,軟中斷:
同步中斷(exception),也即是我們通常所說的異常(),是在CPU執行特定指令時出現的非法情況,它的產生是由於前麵的CPU操作引起的,是同步發生的。比較典型的異常有:除零異常。一些體係結構下的複位中斷也可以算是一種異常。
異步中斷(interrupt):主要是由外部事件觸發的,這就是我們常說的中斷,它的發生不可預料的,是異步的。比如說,鍵盤中斷等。在不同的體係結構中,中斷機製也不一樣。一般可以分為可屏蔽中斷和非屏蔽中斷。
軟中斷(software interrupt ):在大多數硬件體係結構中,都提供軟中斷的功能,主要用於進入管理模式等的手段。
X86中,除前32個作為Intel專用中斷向量外,其他224作為用戶自定義中斷。0~31的向量對應於異常和非屏蔽中斷。32~47的向量(即由I/O設備引起的中斷)分配給屏蔽中斷。48~255的向量用來標識軟中斷。Linux隻用了其中的一個(即128或0x80向量)用來實現係統調用。
ARM中,除了定義的5個異常外,有2個專門用於中斷,這2個中斷被分為快中斷和慢中斷。由於快中斷有專門的寄存器保存上下文,避免了許多上下文切換開銷,所以快中斷能夠比慢中斷快,而且在處理快中斷時,慢中斷會被屏蔽掉。這2個中斷提供了係統的所有中斷入口,係統查詢相應的中斷控製器來區分具體的中斷。
在Motorola的68K中,中斷向量表提供了7個中斷優先級和192個可分配的中斷向量,其中7級是不可屏蔽中斷。
參考:
1.Intel Xscale ProcessorDeveloper's Manual
2.MC680360 QUad 通訊控製器手冊
3.Intel係列微處理器結構,編程和接口技術大全
4.Arm 嵌入式處理器結構與應用基礎
關於CAN總線的一些事情 | |
CAN總線是各種總線中使用比較廣泛的一種通信技術,它在單片機控製技術中和PLC控製技術中會常常使用這種通信技術。下麵我們來說說關於CAN總線的一些事情。 什麼叫CAN總線 CAN總線它是控製器局域網絡(Controller Area Network, CAN)的簡稱,是由德國博世(BOSC... |
iic總線為什麼需要上拉電阻 | |
II總線是當今電子係統中應用最廣泛的芯片間通信標準,它是一種開漏通信標準,需要上拉電阻將總線電平拉到Vdd 在設計中需要增加上拉電阻,但關鍵是上拉電阻阻值取多少合適呢?通常芯片手冊中會有推薦的上拉阻值,所以在設計時按推薦的取值就可以了。下圖是一... |
組態王HTConvertTime函數年份上限2019怎麼 | |
如下圖:組態王HTConvertTime使用2019年 相信用過組態王軟件的人都會知道,組態王HTConvertTime這個函數到了現在2020年已經不能用了,那以前做的項目怎麼辦能,接下來我來為大家介紹以下2種解決方案,如果適用,請采納。 方案1.致電組態王,要求組態王廠家發... |
電子開發中如何確定使用I2C總線還是SPI總線 | |
電子項目開發中經常用到通訊功能,包括板子上芯片間的通訊和設備間的通訊。而常用的有線通訊方式無非就這幾種,如I2C、SPI、RS232、RS485接口、CAN、USB等。其中I2C也叫IIC,對於題目中提到的幾種通訊方式,I2C和SPI是芯片間的短距離通訊,無法長距離通訊。... |
can協議是什麼 | |
CAN總線是德國公司BOSCH公司為解決現代汽車中眾多控製和測試儀器之間的數據交換而開發的一種串行數據通信協議,即控製器局域網總線。 其是一種多主總線,通信介質可以是雙絞線、同軸電纜、光纖,通信速率可達1Mb/s,通信距離可達10Km。此協議的最大特點是廢... |
- 提高RS485總線通信可靠性的解決辦法
- PROFIBUS的地址設定
- PROFIBUS的令牌傳遞
- profibus和profinet的區別及性能比較
- 西門子Profibus DP通訊故障診斷實用方法
- 微機常用接口和總線設計介紹
- can總線電壓是多少
- 電子開發中如何確定使用I2C總線還是SPI總
- DP通信協議詳解
- DP主站和從站設備類型
- PROFIBUSPA總線配置方案和硬件需求
- 寶馬汽車can總線故障排除實例分析
- 嵌入式係統CAN接口電路及軟件設計
- minipcie接口定義圖解
- Profibus總線幹擾類型及處理方法
- 寶馬汽車can總線測量方法
- can總線的工作原理及應用
- CAN總線協議基本規則
- CAN總線行車記錄儀設計和實現探討
- 嵌入式操作係統中斷機製詳解