計算機三級嵌入式知識總結(一)

一、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"通常是指在處理器嘗試執行指令預取時發生的異常。這種異常可能是由于內存訪問錯誤、指令損壞或其他底層硬件或軟件問題引起的。

要解決這個問題,可以采取以下步驟:

  1. 檢查內存:確保內存模塊沒有故障,并且內存地址沒有沖突或錯誤。
  2. 調試程序:檢查應用程序或操作系統內部是否存在指令錯誤或異常。
  3. 更新軟件:確保使用的操作系統、驅動程序和應用程序都是最新版本,以確保已知的問題得到修復。
  4. 測試硬件:通過運行內存測試程序或其他硬件診斷工具來檢查處理器、內存和其他關鍵硬件組件是否正常。

如果以上方法都未能解決問題,可能需要聯系硬件或軟件供應商進行進一步的支持和故障排除。

6、軟件中斷異常SWI

軟件中斷異常(Software Interrupt Exception,SWI)是一種特殊的處理器異常,它通常由軟件調用操作系統提供的服務或執行特權指令而觸發。

在ARM架構的處理器中,SWI通常用于實現操作系統的系統調用。當用戶態程序需要執行特權操作(例如文件操作、進程管理等)時,它會發出一個軟件中斷請求,操作系統會捕獲這個請求,并根據請求的類型執行相應的特權操作。這樣可以確保用戶程序無法直接執行特權指令,從而提高系統的安全性和穩定性。

在其他體系結構中,類似的概念可能被稱為syscall、trap等。總的來說,軟件中斷異常是一種允許用戶程序請求操作系統服務的機制,它有助于確保操作系統能夠以控制和安全的方式提供各種功能。

7、未定義異常UND。

"未定義異常"(Undefined Instruction Exception,UND)是在處理器嘗試執行未定義的指令時觸發的異常。這通常發生在處理器遇到不支持的或者無法識別的指令時。

引起未定義異常的原因可能包括:

  1. 執行針對當前處理器架構不支持的指令。
  2. 指令損壞或錯誤,導致處理器無法正確解碼和執行指令。
  3. 軟件錯誤,例如在特定處理器架構上編寫的代碼中出現了不兼容的指令。

要解決未定義異常,可以考慮以下幾點:

  1. 檢查指令:確認程序代碼是否包含針對當前處理器架構不支持的指令,并對其進行修正。
  2. 調試程序:檢查軟件代碼是否存在指令損壞或錯誤的情況,確保指令的正確性和兼容性。
  3. 更新軟件:確保使用的編譯器、操作系統和庫文件版本符合處理器架構的要求,避免產生不兼容的指令。
  4. 確認架構:如果是在跨平臺開發中出現問題,需要確認代碼是否適配了目標處理器的架構。

在處理未定義異常時,通常需要通過調試工具、日志記錄或其他故障排除方法來確定具體引起異常的原因,并對軟件或者硬件進行相應的修正。

注:每個異常中斷向量占據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個特征

  • 具有異步和中斷處理能力

  • 任務切換時間和中斷延遲時間確定

  • 優先級中斷和調度

  • 搶占式調度

  • 內存鎖定

  • 連續文件

  • 同步

  1. 及時性(Timeliness):實時系統需要在規定的時間內產生反應,即使在高負載下也要保證任務的及時完成。

  2. 可預測性(Predictability):實時系統需要能夠在一定時間范圍內,準確地預測任務執行所需的時間,以便滿足對響應時間的要求。

  3. 可靠性(Reliability):實時系統需要以高可靠性運行,不僅要求系統本身具有穩定性,還要求系統能夠正確處理各種異常情況。

  4. 實時調度(Real-time Scheduling):實時系統需要采用合適的調度算法,確保任務按照其優先級和截止時間進行有效調度,以滿足實時性要求。

  5. 并發性(Concurrency):實時系統通常需要處理多個任務并發執行的情況,因此需要支持并發性,同時保證任務間的相互獨立性和資源的合理分配。

  6. 硬實時和軟實時(Hard Real-time and Soft Real-time):硬實時系統對任務的響應時間有嚴格要求,而軟實時系統對任務的響應時間有一定的容忍度。

  7. 資源管理(Resource Management):實時系統需要合理管理系統資源,包括處理器時間、內存、I/O等,以保證任務的及時完成和系統的穩定性。

四、三類實時系統

  • 強實時系統,響應時間在毫秒級和微秒級

  • 普通實時系統,響應時間在秒級

  • 弱實時系統,響應時間在數十秒級。

五、Bootloader主要完成的工作步驟

  • 初始化處理器及外設的硬件資源配置

  • 建立內存空間的映射關系,使能mmu,將系統的外存和內存地址激活,為最終調用操作系統內核做好準備

  • 裝載操作系統映像到內存

  • 對flash存儲器編程

  • 運行操作系統

  • 傳遞系統啟動參數

  • 命令行解析和輸入輸出控制。

Bootloader是系統啟動時運行的程序,其主要工作步驟包括:

  1. 硬件初始化:Bootloader首先需要對硬件進行初始化,包括處理器、內存、外設等硬件的初始化工作,以便系統能夠正常運行。

  2. 加載引導內核:Bootloader從存儲介質(如閃存、硬盤等)中加載操作系統的內核鏡像到內存中,準備將控制權交給操作系統。

  3. 進入保護模式:在一些架構下,Bootloader需要將處理器從實模式切換到保護模式,以便能夠充分利用操作系統的功能和提供更好的內存保護機制。

  4. 系統配置:Bootloader可能需要對系統進行一些配置,例如設置啟動參數、初始化設備等,以便系統正常啟動。

  5. 啟動內核:最后,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芯片開發流程:總體設計、邏輯設計、綜合和仿真、芯片制造

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/160846.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/160846.shtml
英文地址,請注明出處:http://en.pswp.cn/news/160846.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LINUXZ

10.6.2 AT24C02 訪問方法 設備地址 從芯片手冊上可以知道,AT24C02 的設備地址跟它的 A2、A1、A0 引腳有關: 圖 10.36 AT24C02 設備地址引腳配置 294 / 577 打開 I2C 模塊的原理圖: 開發板配套網盤資料\04_開發板原理圖\ 04_Extend_modules\通…

SQL語句執行過程

一條 SQL 的執行過程可以大致分為以下幾個步驟: 連接器: ○ 客戶端與數據庫建立連接,并發送 SQL 語句給數據庫服務。 ○ 連接器驗證客戶端的身份和權限,確保用戶有足夠的權限執行該 SQL 語句。查詢緩存: ○ 連接器首先…

基于鷹棲息算法優化概率神經網絡PNN的分類預測 - 附代碼

基于鷹棲息算法優化概率神經網絡PNN的分類預測 - 附代碼 文章目錄 基于鷹棲息算法優化概率神經網絡PNN的分類預測 - 附代碼1.PNN網絡概述2.變壓器故障診街系統相關背景2.1 模型建立 3.基于鷹棲息優化的PNN網絡5.測試結果6.參考文獻7.Matlab代碼 摘要:針對PNN神經網絡…

Motion v5.6.7 蘋果電腦上的視頻編輯

Motion mac是一款運行在蘋果電腦上的視頻編輯軟件,它能讓您自定Final Cut Pro字幕、轉場和效果。 它可以在2D或3D空間中創建您自己的精美炫目的動畫,同時還能在您工作時提供實時反饋。廣色域支持讓你的動態圖形更顯出色光彩。3D文字功能經過優化增強&am…

01背包與完全背包學習總結

背包問題分類見下圖 參考學習點擊:代碼隨想錄01背包講解 01背包問題: 核心思路: 1、先遍歷物品個數,再遍歷背包容量。因為容量最先是最大的,往背包里放物品,所以背包容量在慢慢減少,但背包容量…

CentOS7 firewall使用(開放和禁止端口、端口轉發)

安裝 安裝命令 yum install firewalld -y 使用命令 systemctl start firewalld ##開啟防火墻systemctl stop firewalld ##關閉防火墻systemctl status firewalld ##查看防火墻狀態firewall-cmd --reload ##重啟防火墻systemctl enable firewalld ##設置開啟啟動systemctl …

共享內存原理介紹及簡單使用

每當我們執行一個程序時,對于操作系統來講就創建了一個進程,在這個過程中,伴隨著資源的分配和釋放。可以認為進程是一個程序的一次執行過程。進程的內存空間是相互獨立的,一般而言是不能相互訪問的。但很多情況下進程間需要互相通信&#xff…

上海泗博MODBUS轉PROFINET網關TS-180 網關連接LED顯示屏應用案例

項目 常州某鋼鐵公司的軋鋼車間為了更清晰地顯示當天軋鋼系統各環節的工作參數,如軋鋼的日期、鋼種、吐絲機設備運行情況等,引進了另一家為其定制的LED顯示屏。軋鋼系統各環節的設備參數通過西門子S7-1500PLC采集后,實時顯示在LED顯示屏上&am…

飛瓜數據B站丨B站UP主11月第3周榜單排行榜榜單(B站平臺)發布!

飛瓜輕數發布2023年11月13日-11月19日飛瓜數據UP主排行榜(B站平臺),通過充電數、漲粉數、成長指數、帶貨數據等維度來體現UP主賬號成長的情況,為用戶提供B站號綜合價值的數據參考,根據UP主成長情況用戶能夠快速找到運營…

Linux網絡——傳輸層

目錄 一.再談端口概念 二.UDP協議 1.UDP協議格式 2.UDP的特點 3.面向數據報 4.UDP的緩沖區 5.UDP使用注意事項 6.UDP協議在內核中的表現形式 7.基于UDP的應用層協議 三.TCP協議 1.TCP協議格式 2.TCP確認應答機制 3.超時重傳機制 4.TCP報文六位標志位 5.滑動窗口 6…

制作抖音查券返利機器人的簡易步驟

制作抖音查券返利機器人的簡易步驟 隨著社交電商的快速發展,越來越多的消費者開始通過優惠券和返利來省錢購物。而抖音作為一款廣受歡迎的短視頻平臺,也為消費者提供了一個全新的購物體驗。本文將結合微賺淘客系統,介紹如何制作一個簡易的抖…

Web3與Web3.0: Web3指的是去中心化和基于區塊鏈的網絡,Web3.0指的是鏈接或語義網絡。

目錄 Web3與Web3.0: Web3指的是去中心化和基于區塊鏈的網絡 Web3.0指的是鏈接或語義網絡。

Flutter開發實踐:用一套代碼構建多端精美應用

🏆作者簡介,黑夜開發者,CSDN領軍人物,全棧領域優質創作者?,CSDN博客專家,阿里云社區專家博主,2023年6月CSDN上海賽道top4。 🏆數年電商行業從業經驗,歷任核心研發工程師…

Python下使用requests庫遇到的問題及解決方案

每一盞燈都有一個故事……當凌晨2點我的房間燈還亮著時,那就是我與BUG的一場生死博弈。一個人靜靜地坐在電腦前不斷地寫代碼,感覺快要麻木了,好比閉關修煉一樣枯燥無味。最終當我打通任督二脈后,bug修復迎來的一片曙光。 一、問題…

clang+llvm多進程gdb調試

clangllvm多進程gdb調試 前言1. 命令行gdb2. 父進程調試3. 子進程調試4. 返回父進程 前言 在學習新增llvm的優化pass時,需要跟蹤clang及llvm的調用棧。然而llvm通過posix_spawn()創建了新進程,這使得gdb調試必須有一定的技巧了。 1. 命令行gdb 以下命…

函數式編程-Stream流筆記-三更草堂

函數式編程-Stream流 1. 概述 1.1 為什么學&#xff1f; 能夠看懂公司里的代碼 大數量下處理集合效率高 代碼可讀性高 消滅嵌套地獄 //查詢未成年作家的評分在70以上的書籍 由于數據中作家和書籍可能出現重復&#xff0c;需要進行去重 List<Book> bookList new Ar…

4G5G智能執法記錄儀在保險公司車輛保險遠程定損中的應用

4G智能執法記錄儀&#xff1a;汽車保險定損的**利器 隨著科技的不斷進步&#xff0c;越來越多的智能設備應用到日常生活中。而在車輛保險定損領域&#xff0c;4G智能執法記錄儀的出現無疑是一大**。它不僅可以實現遠程定損&#xff0c;還能實現可視化操作、打印保單以及數據融…

WCF Demo

1.WCF概述 WCF是用于構建分布式應用程序和服務的框架。它提供了用于創建和管理分布式系統的工具和庫&#xff0c;支持多種通信協議和傳輸方式&#xff0c;如HTTP、TCP、Named Pipes等。WCF基于服務的概念&#xff0c;允許開發人員定義服務契約、實現服務邏輯&#xff0c;并通過…

給定一個非嚴格遞增排列的有序數組,刪除數組中的重復項

實例要求&#xff1a;1、給定一個非嚴格遞增排列的有序數組 nums &#xff1b;2、原地 刪除重復出現的元素&#xff0c;使每個元素 只出現一次 &#xff1b;3、返回刪除后數組的新長度&#xff1b;4、元素的 相對順序 應該保持 一致 &#xff1b;5、然后返回 nums 中唯一元素的…

dolphinscheduler有任務一直在運行(問題)目前對數據庫解決

dolphinscheduler有任務一直在運行&#xff08;問題&#xff09;目前對數據庫解決 危害&#xff1a; 這么多的任務沒有結束&#xff0c;會涉及很多問題的&#xff0c;系統的數據盤會不斷入職日志&#xff0c;數據量很大&#xff0c; 其實對于dolphinscheduler的性能是下降的&a…