ARM SWI中斷處理軟硬體流程

2021-06-22 17:44:33 字數 1219 閱讀 9121

keynote完爆micro visio!

一、swi硬體過程:

1、淺綠色與淺粉色同時覆蓋的資源為「使用者模式」和「異常模式」在物理上共用的硬體資源:

核心通用暫存器r0~r12、r15;

核心狀態暫存器cpsp;

alu和cu部件;

執行時棧;

程式儲存記憶體;

在系統啟動時管理模式下分別已設定各模式對應的執行時棧位址於各模式自有的指標r13_mode中,故執行時棧也屬於各自私有資源。

2、各模式私有資源:

r13:執行時棧指標sp;

spsr:cpsr備份狀態暫存器;

其中使用者模式和系統模式沒有spsr備份暫存器,因為這兩種模式不屬於異常模式,故當從其他異常模式返回到使用者模式和系統模式時,不需要spsr來備份上乙個異常模式的執行狀態,也即是無需記錄異常模式下的狀態,因此cpu不會在異常模式下長期執行。

3、b為遇到swi中斷指令的斷點,此時已進入流水線解碼階段的ins_f指令會被硬體自動拋棄,解碼器輸出自動清零,稍後ins_g指令的取指過程也被終止,即pc被置換為異常向量位址,最後完成模式切換,同時在異常模式中的中斷處理服務程式中首先對可以訪問使用者模式的共有資源r0~r12進行入棧保護。

4、中斷返回後,pc從ins_f的位址取指,繼續執行當前使用者模式下的應用程式。

二、swi軟體過程:

5、綠色區域程式段主要由arm彙編**完成,主要用於上電復位,初始化硬體:時鐘、堆疊、看門狗、中斷、記憶體位址對映、模式切換等。

6、藍色區域程式段主要在swi發生時第一時間對中斷現場進行保護、提取swi軟中斷號。當遇到swi指令時,swi解碼後執行,此時硬體會自動將pc-4裝入lr暫存器,故在藍色區域程式中只需要對藍色區域程式段本身可能使用到的r0~r12通用暫存器進行入棧保護。但由於緊接著又呼叫isr服務程式,故在handler_swi中,lr的內容也需要入棧保護,否則會在呼叫isr時lr內容被刷掉。在呼叫isr服務程式時,lr會重新更新,儲存的是mov pc,lr指令的位址。在進入isr服務程式後,同樣要第一時間對isr自身對可能用到的r0~r12進行入棧保護,由於isr通常由c編寫,故保護動作不需要使用者完成,c編譯器和彙編器會在編譯過程中自動新增入棧、出棧指令。

軟 硬體 負載均衡

軟體負載均衡解決方案是指在一台或多台伺服器相應的作業系統上安裝乙個或多個附加軟體來實現負載均衡,如dns load balance,checkpoint firewall 1 connectcontrol等,它的優點是基於特定環境,配置簡單,使用靈活,成本低廉,可以滿足一般的負載均衡需求。軟體解決方...

計算機軟硬體概論計算機軟硬體概述

計算機的組成分為軟體與硬體。一些物理裝置按系統結構的要求構成了乙個有機整體為計算機軟體執行提供物質基礎。計算機硬體組成 組成乙個計算機最簡單的配置 馮.諾依曼體系結構 馮.諾依曼 可以稱為計算機之父,但他更願意把這個稱號送給圖靈。但圖靈更應該稱為人工智慧之父!計算機軟體可以使計算機按照事先預定好的順...

獲取系統軟硬體資訊

maillist有位兄弟獲取mac和硬碟序號有問題,也就可試下python下用什麼方法獲取電腦硬體資訊的方法,主要是獲取cpuid。狗了一會總算找到了乙個滿意的模組 wmi,可惜只能在win下用。lin下面再找下其它辦法吧,將就試下。先下載模組http pypi.python.org pypi wm...