一、ARM的七種異常類型
1、復位異常RESET
“復位異常RESET”通常是指在電子設備或系統中發生了一個意外的復位或重啟。這可能是由于硬件故障、軟件問題或其他未知的原因引起的。當設備經歷復位異常時,它可能會丟失正在進行的操作或設置,導致數據丟失或系統功能受損。
在計算機領域,RESET指的是將系統恢復到初始狀態或默認設置。而“復位異常RESET”則意味著這種重置發生在沒有明顯觸發的情況下,可能是由于錯誤、故障或異常引起的。
2、快速中斷請求異常FLQ
“快速中斷請求異常(Fast Local Interrupt Request Exception,FLQ)”是一個相對較少見的計算機錯誤或異常類型。在一些特定的計算機架構或操作系統環境中,可能會出現這樣的異常。
在一般情況下,快速中斷請求是指在處理器需要立即響應某一事件時的一種機制。當處理器接收到快速中斷請求時,它會迅速中斷當前的執行流程,轉而處理請求的事件。而當出現快速中斷請求異常時,則意味著在處理這種請求的過程中發生了異常情況,可能是由硬件故障、中斷控制器問題或其他系統錯誤導致的。
對于普通用戶來說,遇到FLQ異常的情況可能較為罕見,一般需要由系統管理員或相關技術人員進行診斷和處理。如果你遇到了這個問題,建議向系統管理員或相關技術支持尋求幫助,以便針對具體情況進行詳細的排查和處理。
3、數據訪問中止異常DABT
數據訪問中止異常(Data Abort,簡稱DABT)是一種ARM處理器的異常類型之一。當程序執行期間發生無效的數據訪問,例如嘗試訪問未映射內存、訪問權限不足或者非法的地址等情況時,處理器會觸發數據訪問中止異常。
當發生數據訪問中止異常時,處理器會暫停當前執行的指令,并將控制轉移到相應的異常處理程序中。異常處理程序可以對異常進行處理,例如修復錯誤、恢復現場或者終止程序等。然后,處理器根據異常處理程序的指示來決定下一步的執行流程。
數據訪問中止異常是一種常見的異常類型,經常由程序錯誤、內存錯誤或者操作系統異常引發。在程序開發和調試過程中,處理好數據訪問中止異常可以幫助我們更好地定位和解決問題。
4、一般中斷請求IRQ
中斷請求(Interrupt Request,簡稱IRQ)是一種信號,用于通知處理器有一個外部設備請求處理器的注意或響應。外部設備通過發送IRQ信號來請求處理器處理特定的事件或操作。處理器在接收到IRQ信號后,會終止當前的任務,轉而處理中斷請求,并執行相應的中斷服務程序。
IRQ信號可以由外部設備產生,比如輸入/輸出設備、定時器、鍵盤等。當外部設備需要處理器的服務時,它會發送一個IRQ信號給處理器,以請求處理器為其提供服務。處理器接收到IRQ信號后,會根據預先設定的優先級來決定是否響應該中斷請求,并執行相應的中斷服務程序。
中斷請求(IRQ)是一種異步事件,與處理器的執行無關。它允許外部設備在任何時間點發送中斷請求,并引起處理器的響應。中斷請求的使用可以提高系統的可響應性和效率,讓處理器能夠及時響應外部設備的需求,處理各種事件和異常情況。
5、預取指令異常PABT
"預取指令異常PABT"通常是指在處理器嘗試執行指令預取時發生的異常。這種異常可能是由于內存訪問錯誤、指令損壞或其他底層硬件或軟件問題引起的。
要解決這個問題,可以采取以下步驟:
- 檢查內存:確保內存模塊沒有故障,并且內存地址沒有沖突或錯誤。
- 調試程序:檢查應用程序或操作系統內部是否存在指令錯誤或異常。
- 更新軟件:確保使用的操作系統、驅動程序和應用程序都是最新版本,以確保已知的問題得到修復。
- 測試硬件:通過運行內存測試程序或其他硬件診斷工具來檢查處理器、內存和其他關鍵硬件組件是否正常。
如果以上方法都未能解決問題,可能需要聯系硬件或軟件供應商進行進一步的支持和故障排除。
6、軟件中斷異常SWI
軟件中斷異常(Software Interrupt Exception,SWI)是一種特殊的處理器異常,它通常由軟件調用操作系統提供的服務或執行特權指令而觸發。
在ARM架構的處理器中,SWI通常用于實現操作系統的系統調用。當用戶態程序需要執行特權操作(例如文件操作、進程管理等)時,它會發出一個軟件中斷請求,操作系統會捕獲這個請求,并根據請求的類型執行相應的特權操作。這樣可以確保用戶程序無法直接執行特權指令,從而提高系統的安全性和穩定性。
在其他體系結構中,類似的概念可能被稱為syscall、trap等。總的來說,軟件中斷異常是一種允許用戶程序請求操作系統服務的機制,它有助于確保操作系統能夠以控制和安全的方式提供各種功能。
7、未定義異常UND。
"未定義異常"(Undefined Instruction Exception,UND)是在處理器嘗試執行未定義的指令時觸發的異常。這通常發生在處理器遇到不支持的或者無法識別的指令時。
引起未定義異常的原因可能包括:
- 執行針對當前處理器架構不支持的指令。
- 指令損壞或錯誤,導致處理器無法正確解碼和執行指令。
- 軟件錯誤,例如在特定處理器架構上編寫的代碼中出現了不兼容的指令。
要解決未定義異常,可以考慮以下幾點:
- 檢查指令:確認程序代碼是否包含針對當前處理器架構不支持的指令,并對其進行修正。
- 調試程序:檢查軟件代碼是否存在指令損壞或錯誤的情況,確保指令的正確性和兼容性。
- 更新軟件:確保使用的編譯器、操作系統和庫文件版本符合處理器架構的要求,避免產生不兼容的指令。
- 確認架構:如果是在跨平臺開發中出現問題,需要確認代碼是否適配了目標處理器的架構。
在處理未定義異常時,通常需要通過調試工具、日志記錄或其他故障排除方法來確定具體引起異常的原因,并對軟件或者硬件進行相應的修正。
注:每個異常中斷向量占據4個字節
二、ARM處理器的7種工作模式
ARM處理器的7種工作模式,取決于當前程序狀態寄存器CPSR的低5位值
1、?用戶模USR: ARM處理器正常的程序執行狀態,如果沒有異常發生不能改變工作模式;
在用戶模式下,處理器以最低的權限級別運行,只能執行受限制的指令。這是用于執行普通用戶應用程序的默認模式。
2、系統模式SYS:?運行具有特權的操作系統任務;
系統模式用于支持操作系統內核的功能和特權級別切換。在系統模式下,處理器可以執行特權指令和管理系統資源。
3、快中斷模式FIQ:?支持高速數據傳輸或通道處理;
FIQ模式用于快速處理高優先級的中斷請求。當發生特別緊急的中斷情況時,處理器可以切換到FIQ模式,以便更快地響應這些中斷請求。在FIQ模式下,處理器可以訪問專用的寄存器集,以提高中斷處理的效率。
4、管理模式SVC:?操作系統保護模式。
在SVC模式下,處理器運行在特權級別,用于執行操作系統內核的特權指令和管理系統資源。當用戶程序需要執行特權指令或者請求操作系統提供服務時,可以通過軟中斷(SVC指令)切換到SVC模式,以便操作系統能夠響應并處理這些請求。處理器在SVC模式下具有較高的權限,可以執行特權指令、訪問系統資源,并管理操作系統所需的各種任務。
5、數據訪問終止模式ABT:?當數據或指令預取終止時進入該模式,可用于虛擬內存及存儲保護。
數據訪問終止模式(ABT,Abort Mode)是ARM處理器的一種工作模式,用于處理內存訪問異常。當發生內存相關的錯誤,比如數據訪問失敗或者無效的內存操作時,處理器會切換到ABT模式以處理這些異常情況。在ABT模式下,處理器會執行特定的異常處理程序,來處理內存相關的錯誤和異常情況,以確保系統能夠正確地響應并處理這些問題。ABT模式的存在可以提高系統的穩定性和健壯性,確保內存訪問異常不會導致系統的崩潰或數據的損壞。
6、中斷模式IRQ:?用于通常的中斷處理
中斷模式IRQ是ARM處理器的一種工作模式,用于處理一般性的中斷請求。當外部設備或者其他處理器核發送中斷請求時,處理器可以切換到IRQ模式以響應并處理這些中斷請求。在IRQ模式下,處理器會執行預先定義的中斷服務程序(ISR,Interrupt Service Routine),來處理特定的中斷事件。
IRQ模式允許處理器在正常執行流程被中斷的情況下,及時地響應外部設備的請求,處理特定的事件或者執行特定的任務。這有助于提高系統的實時性和響應速度,使處理器能夠有效地處理來自外部設備的中斷請求,并及時做出響應。
7、未定義指令終止模式UND:??用于支持硬件協處理器的軟件仿真(浮點、微量運算)
在ARM處理器中,未定義指令終止模式(UND,Undefined Instruction Mode)是一種處理器工作模式,用于處理當處理器執行遇到未定義的指令時的異常情況。
當處理器在執行過程中遇到無法識別或者未定義的指令時,會觸發未定義指令異常,然后切換到UND模式。在UND模式下,處理器會執行相應的異常處理程序,通常是由操作系統或者其他軟件定義的處理程序,來處理這種未定義指令的異常情況。
UND模式的存在可以確保處理器能夠妥善地處理未定義指令的異常情況,防止這種異常導致系統崩潰或者數據損壞。通過合適的異常處理程序,系統可以對未定義指令進行適當的處理,以保證系統的穩定性和可靠性。
三、?實時系統7個特征
-
具有異步和中斷處理能力
-
任務切換時間和中斷延遲時間確定
-
優先級中斷和調度
-
搶占式調度
-
內存鎖定
-
連續文件
-
同步
及時性(Timeliness):實時系統需要在規定的時間內產生反應,即使在高負載下也要保證任務的及時完成。
可預測性(Predictability):實時系統需要能夠在一定時間范圍內,準確地預測任務執行所需的時間,以便滿足對響應時間的要求。
可靠性(Reliability):實時系統需要以高可靠性運行,不僅要求系統本身具有穩定性,還要求系統能夠正確處理各種異常情況。
實時調度(Real-time Scheduling):實時系統需要采用合適的調度算法,確保任務按照其優先級和截止時間進行有效調度,以滿足實時性要求。
并發性(Concurrency):實時系統通常需要處理多個任務并發執行的情況,因此需要支持并發性,同時保證任務間的相互獨立性和資源的合理分配。
硬實時和軟實時(Hard Real-time and Soft Real-time):硬實時系統對任務的響應時間有嚴格要求,而軟實時系統對任務的響應時間有一定的容忍度。
資源管理(Resource Management):實時系統需要合理管理系統資源,包括處理器時間、內存、I/O等,以保證任務的及時完成和系統的穩定性。
四、三類實時系統
-
強實時系統,響應時間在毫秒級和微秒級
-
普通實時系統,響應時間在秒級
-
弱實時系統,響應時間在數十秒級。
五、Bootloader主要完成的工作步驟
初始化處理器及外設的硬件資源配置
建立內存空間的映射關系,使能mmu,將系統的外存和內存地址激活,為最終調用操作系統內核做好準備
裝載操作系統映像到內存
對flash存儲器編程
運行操作系統
傳遞系統啟動參數
命令行解析和輸入輸出控制。
Bootloader是系統啟動時運行的程序,其主要工作步驟包括:
硬件初始化:Bootloader首先需要對硬件進行初始化,包括處理器、內存、外設等硬件的初始化工作,以便系統能夠正常運行。
加載引導內核:Bootloader從存儲介質(如閃存、硬盤等)中加載操作系統的內核鏡像到內存中,準備將控制權交給操作系統。
進入保護模式:在一些架構下,Bootloader需要將處理器從實模式切換到保護模式,以便能夠充分利用操作系統的功能和提供更好的內存保護機制。
系統配置:Bootloader可能需要對系統進行一些配置,例如設置啟動參數、初始化設備等,以便系統正常啟動。
啟動內核:最后,Bootloader將控制權轉交給操作系統內核,使其開始執行并接管系統的管理和控制。
總的來說,Bootloader的主要工作是初始化硬件環境,加載內核鏡像,并啟動操作系統,是系統啟動過程中至關重要的一部分。
六、?Linux內核的5個子系統
-
進程調度SCHED
-
內存管理MM
-
虛擬文件系統VFS?
-
網絡接口NET
-
進程間通信IPC
七、μC/OS-II系統提供的5個基本功能
-
任務管理
-
任務間通信與同步
-
任務調度
-
時間管理
-
內存管理
八、其他知識
1、?單內核:Unix、Linux、Wince、Mac、OS、Andriod、Dos
2、?微內核:symbian、Vxworks、QNX、μC/OS-II、IOS
3、?實時操作系統RTOS的3個指標:響應時間、吞吐量和生存時間。時間的指標是:?中斷延遲時間和任務切換時間。
4、?模擬信號數字化步驟:掃描、分色、取樣、量化。
5、?μC/OS-II的5種狀態:休眠態、就緒態、運行態、掛起態、被中斷態
6、?引導加載程序boot主要完成:內存加電自檢,外設存在自檢,內存地址管理映射,初始化外圍設備,內存尋址定位,加載和啟動操作系統
7、?嵌入式最最小系統一般包括嵌入式處理器、時鐘電路、電源電路、復位電路、存儲器和調試測試接口。
8、?通用輸入/輸出接口GPIO?具有三態:0態、1態、高阻態
9、?S3C2410內部的電源管理模塊四種模式:正常模式、慢速模式、休眠模式、掉電模式
10、?任務間通信機制有信號量?消息郵箱、消息隊列、互斥信號量、時間標志組。
11、 μC/OS-II中OSInit()函數最先建立最初的任務就緒表,然后建立4個空白的數據鏈表:任務控制塊鏈表、事件控制塊、標志鏈表和內存控制塊鏈表。
12、?異步收發器UART:發送器、接收器、控制單元、波特率發生器
13、?OS裝載方式:串口、以太網、USB接口裝載
14、?IOS系統結構:核心操作系統、核心服務層、媒體層、觸摸框架層。
15、?μC/OS-II四層軟件結構:依次為軟件層、應用程序接口層、內核層、設備驅動層
16、?嵌入式Linux操作系統3大子系統:用戶進程?OS服務組件?Linux內核
17、?CAN總線數據幀的7個域,幀起始,仲裁域,控制域,數據域,CRC域,應答域,幀結尾。
18、?μC/OS-II的嵌入式系統軟件部分有4層組成,從上而下分別是:應用軟件層,應用程序接口層,μC/OS-II內核層,設備驅動程序層。
19、?linux內核的主要作用:進程管理和調度、內存管理、文件管理、網絡接口、進程間通信;
20、?andriod從低層到高層:內核,系統運行庫,應用程序框架,應用
21、?計算機局域網傳輸數據:發送設備MAC地址、接收設備MAC地址、控制信息、有效載荷(傳輸的數據)、校驗信息。
22、?生成可執行文件4階段:預處理?、編譯、匯編、連接。
23、?SPI的4條信號線:
串行時鐘線SCK
主機輸入/從機輸出數據線MISO
主機輸出/從機輸入MOSI
低電平有效的從機選擇線SSEL
24、?IP核通常分為三種:硬核、固核、軟核
25、?采用無線方式接入互聯網的技術三類:無線局域網接入、GPRS移動電話網接入、3G移動電話網接入;
26、?BSP包括初始化程序、設備驅動程序?、配置文件、引導加載程序
27、?RVDS開發工具套件主要包括:工程管理器IDE、編譯連接器RVCT、調試器RVD、指令集仿真器RVISS等。
28、 arm對異常響應過程如下:將CPRS的值保存到將要執行的異常中斷對應的各自SPSR中;設置CPSR的相應位;將引起異常指令的下一條地址(斷點地址)保存到R14中;給PC強制賦值,轉入向量地址,以便執行相應的處理程序。
29、?SOC芯片開發流程:總體設計、邏輯設計、綜合和仿真、芯片制造