嵌入式總結

2021-10-25 16:43:04 字數 4762 閱讀 2044

第三部分

arm處理器特點。

功耗低、成本低、效能高

支援thumb(16位)/arm(32位)雙指令集

cortex支援thumb-2(16/32位混合指令系統)

指令長度固定(32位/16位)

大量使用暫存器,指令執行速度更快,都可用於多種用途

定址方式靈活簡單,執行效率高

arm處理器的各系列情況。

arm處理器的工作模式及模式轉換,arm處理器的工作狀態及狀態轉換,arm處理器的異常型別及異常響應和返回過程。

7種工作模式:

user-使用者模式(usr)

arm處理器正常的程式執行狀態

system-系統模式(sys)

執行具有特權的作業系統任務

irq-外部中斷模式(irq)

用於通用的中斷處理

fiq-快速中斷模式(fiq)

用於高速資料傳輸或通道處理

supervisor-管理模式(svc)

作業系統使用的保護模式

復位、軟中斷呼叫(swi)

abort-中止模式(abt)

當資料或指令預取中止時進入該模式

可用於虛擬儲存及儲存保護

undefined-未定義指令模式(und)

當未定義的指令執行時進入該模式

可用於支援硬體協處理器的軟體**

工作模式的改變

通過軟體改變

系統呼叫swi

通過外部中斷或異常處理改變

外部中斷:irq、fiq

– 來自中斷控制器

異常處理

– 來自cpu內部

arm微處理器的工作狀態一般有兩種

第一種為arm狀態

處理器執行32位的arm指令

arm指令要求字對齊

第二種為thumb狀態

處理器執行16位的thumb指令

thumb指令要求半字對齊

工作狀態切換方法

進入thumb狀態

執行bx指令

– bx:帶狀態切換的跳轉指令

– 當運算元暫存器的最低位[0]為1時,可以使微處理器從arm狀態切換到thumb狀態

– bx r0 ;r0的最低位[0]為1

處理器工作在thumb狀態,如果發生異常並進入異常處理子程式,則異常處理完畢返回時,自動從arm狀態切換到thumb狀態

進入arm狀態

執行bx指令

– bx:帶狀態切換的跳轉指令

– 當運算元暫存器的最低位[0]為0時,可以使微處理器從thumb狀態切換到arm 狀態

– bx r0 ;r0的最低位[0]為0

處理器工作在thumb狀態,如果發生異常並進入異常處理子程式,則進入時處理器自動從thumb狀態切換到arm狀態

當出現異常後,arm處理器會執行以下操作

1 將cpsr複製到相應的spsr中

2 對cpsr進行設定

根據異常型別,強制設定cpsr的工作模式位

設定中斷禁止位,以禁止中斷發生

如果處理器處於thumb狀態,則切換到arm狀態

3 將下一條指令的位址存入相應鏈結暫存器lr

lr中儲存的是下一條指令的位址(當前執行指令位址+4或+8,與異常型別有關)

4 強制pc從相關的異常向量位址取下一條指令執行,從而跳轉到相應的異常處理程式處

arm處理器對異常的響應過程用偽碼描述為

spsr_ = cpsr

cpsr[4:0] = exception mode number

cpsr[5] = 0切換到arm工作狀態

if == reset or fiq then

cpsr[6] = 1 ; 禁止新的fiq異常

cpsr[7] = 1禁止新的irq異常

r14_ = return link

pc = exception vector address

異常處理完畢之後,arm微處理器會執行以下幾步操作從異常返回

1、將spsr複製回cpsr中

2、將鏈結暫存器lr的值減去相應偏移量後送到pc中

注意復位異常處理程式不需要返回

arm處理器的暫存器組織的用途。

arm處理器的暫存器

◆37個32位暫存器

31個通用暫存器

6個狀態暫存器

◆這些暫存器不能被同時訪問

取決於處理器的

– 工作狀態

– 工作模式

通用暫存器

◆通用暫存器包括r0~r15

◆可以分為三類

未分組暫存器r0~r7

分組暫存器r8~r14

程式計數器r15 (pc)

◆在所有的工作模式下,每個未分組暫存器都指向對應的乙個物理暫存器

◆在中斷或異常處理進行工作模式轉換時,由於不同的處理器工作模式均使用相同的物理暫存器,可能會造成暫存器中資料的破壞

分組暫存器r8~r14

◆r8~r12

每個暫存器對應2個不同的物理暫存器

當使用fiq模式時,訪問r8_fiq~r12_fiq

當使用其他模式時,訪問r8_usr~r12_usr

◆r13、r14

每個暫存器對應6個不同的物理暫存器

其中乙個暫存器是使用者模式與系統模式共用

另外5個物理暫存器對應於其他5種不同的工作模式

r13暫存器

◆常用作堆疊指標sp(stack pointer),一種習慣用法

◆也可使用其他的暫存器作為堆疊指標

◆在thumb指令集中,某些指令強制使用r13作為堆疊指標

◆在應用程式初始化時,一般都要初始化每種模式下的r13,使其指向該工作模式的棧空間

r14暫存器

◆也稱鏈結暫存器lr (link register)

當執行bl子程式呼叫指令時,r14中得到r15(程式計數器pc)的備份

bl label;下一條指令位址→lr, label→pc

◆當發生中斷或異常時,對應的分組暫存器r14_svc、r14_irq、r14_fiq、r14_abt和r14_und用來儲存r15的返回值

◆其他情況下,r14用作通用暫存器

r14暫存器常用情形

◆1、常用用法(子程式返回)

mov pc, lr

bx lr

◆2、在子程式入口處使用以下指令將r14存入堆疊

stmfd sp!,

使用以下指令可以完成子程式返回

ldmfd sp!,

arm處理器的定址方式。

定址方式是處理器執行指令時尋找真實運算元位址的方式。arm處理器支援9種基本定址方式 :

立即定址;

add r0, r0, #1r0←r0+1

add r0, r0, #0x3f ; r0←r0+0x3f

在以上兩條指令中,第二個源運算元即為立即數,要求以「#」為字首,對於以十六進製制表示的立即數,還要求在「#」後加上「0x」或「&」

暫存器定址;

暫存器定址就是利用暫存器中的數值作為運算元

add r0, r1, r2r0←r1+r2

暫存器間接定址;

以暫存器中的值作為運算元的位址,而運算元本身存放在儲存器中

基址定址 ;

暫存器(該暫存器一般稱作基址暫存器)的內容與指令中給出的位址偏移量相加,從而得到乙個運算元的有效位址

相對定址

相對定址以程式計數器pc的當前值為基位址,指令中的位址標號作為偏移量,將兩者相加之後得到運算元的有效位址

多暫存器定址;

採用多暫存器定址方式,一條指令可以完成多個暫存器值的傳送,最多傳送16個通用暫存器的值

ldmia r0!, ; r1←[r0],r0=r0+4

堆疊定址 ;

滿遞增堆疊:堆疊指標指向最後壓入的資料,且由低位址向高位址生成—

滿遞減堆疊:堆疊指標指向最後壓入的資料,且由高位址向低位址生成—

空遞增堆疊:堆疊指標指向下乙個將要放入資料的空位置,且由低位址向高位址生成—

空遞減堆疊:堆疊指標指向下乙個將要放入資料的空位置,且由高位址向低位址生成—

塊拷貝定址 ;

多暫存器傳送指令用於將一塊資料從儲存器的某一位置拷貝到另一位置。 如:

stmia r0!, ;將r1~r7的資料儲存到儲存器中。

儲存指標在儲存第乙個值之後增加,

增長方向為向上增長。

暫存器移位定址;

暫存器移位定址是arm指令集特有的定址方式。當第2個運算元是暫存器移位方式時,第2個暫存器運算元在與第1個運算元結合之前,選擇進行移位操作。暫存器移位定址指令舉例如下:

mov r0,r2,lsl #3 ;r2的值左移3位,結果放入r0即是r0=r2×8

ands r1,r1,r2,lsl r3 ;r2的值左移r3位,然後和r1相與」操作,結果放入r1

arm處理器的基本指令(課件中舉例的)

各種指令詳見ppt……真的沒法寫……真的……

第五部分

1. 硬體電路設計原理(幾個步驟)。

嵌入式系統的硬體設計主要分3個步驟:設計電路原理圖、生成網路表、設計印製電路板,如下圖所示。

硬體設計的3個步驟

(以下描述是從網上找的,可選擇記憶關鍵步驟)

進行硬體設計開發,首先要進行原理圖設計,需要將乙個個元器件按一定的邏輯關係連線起來。設計乙個原理圖的元件**是「原理相簿」,除了元件庫外還可以由使用者自己增加建立新的元件,使用者可以用這些元件來實現所要設計產品的邏輯功能。例如利用protel中的畫線、匯流排等工具,將電路中具有電氣意義的導線、符號和標識根據設計要求連線起來,構成乙個完整的原理圖。

嵌入式總結

什麼叫嵌入式系統 以應用為中心 以計算機技術為基礎 軟體硬體可裁剪 適應應用系統對功能 可靠性 成本 體積 功耗嚴格要求的專用計算機系統。什麼叫嵌入式處理器?嵌入式處理器分為哪幾類?嵌入式處理器是為完成特殊的應用而設計的特殊目的的處理器。分為四類 1 嵌入式微處理器 embedded micropr...

嵌入式學習總結

6 固化 在嵌入式系統中,嵌入式作業系統和應用軟體被固化在嵌入式系統計算機的rom中。7 更好的硬體適應性,也就是良好的移植性 通用作業系統的檔案系統通常具有以下功能 提供使用者對檔案操作的命令。提供使用者共享檔案的機制。管理檔案的儲存介質。提供檔案的訪問控制機制,保障檔案及檔案系統的安全性。提供檔...

嵌入式重要

什麼是嵌入式系統?2005 8 23 9 39 12 by mcublog 10推薦顧名思義,嵌入到mcu核心 嵌入式系統一般指非pc系統,它包括硬體和軟體兩部分。硬體包括處理器 微處理器 儲存器及外設器件和i o埠 圖形控制器等。軟體部分包括作業系統軟體 os 要求實時和多工操作 和應用程式程式設...