嵌入式開發筆記(三)ARM基礎知識

1.ARM的編程模式程序員

 

1.1當ARM 採用的是32位架構.編程

   ARM 約定:安全

   Byte : 8 bits架構

   Halfword(半字) :16 bits (2 byte)操作系統

   Word : 32 bits (4 byte)    聯想: 數據位寬4 byte,地址映射數據線32條設計

注意:Word在VC下是16bit,緣由早期微軟16位時就定義爲16bit,後來32位時候未改換成DWord.指針

1.2大部分ARM core 提供:code

(2)ARM 指令集(32-bit) orm

(1)Thumb 指令集(16-bit ) 資源

(3)Thumb2指令集(16 & 32bit)

小計:早期時候Thumb指令集,每條指令16bit。缺點:有時須要兩個指令完成,效率,時間。以後ARM指令集每條指令32bit,缺點:浪費資源。隨後Thumb2(armV7)[16&32]。

1.3 Jazelle cores 支持 Java bytecode(支持JAVA加速)

 

2.ARM處理器工做模式

 2.1 ARM 有7個基本工做模式:

(1)User : 非特權模式,大部分任務執行在這種模式

(2)FIQ :   當一個高優先級(fast) 中斷產生時將會進入這種模式

(3)IRQ :   當一個低優先級(normal) 中斷產生時將會進入這種模式

(4)Supervisor :當復位或軟中斷指令執行時將會進入這種模式

(5)Abort : 當存取異常時將會進入這種模式

(6)Undef : 當執行未定義指令時會進入這種模式

(7)System : 使用和User模式相同寄存器集的特權模式

2.2注意:

(1)除User(用戶模式)是Normal(普通模式)外,其餘6種都是Privilege(特   權模式)。

(2)Privilege中除Sys模式外,其他5種爲異常模式。

(3)各類模式的切換,能夠是程序員經過代碼主動切換(經過寫CPSR寄存器);  也能夠是CPU在某些狀況下自動切換。

(4)各類模式下權限和能夠訪問的寄存器不一樣。

2.3 CPU爲何設計這些模式?

(1)1CPU是硬件,OS是軟件,軟件的設計要依賴硬件的特性,硬件的設計要考 慮軟件須要,便於實現軟件特性。

(2)操做系統有安全級別要求,所以CPU設計多種模式是爲了方便操做系統的多 種角色安全等級須要。

3.ARM的37個寄存器詳解

 

3.1特色

1.ARM總共有37個寄存器,可是每種模式下最多隻能看到18個寄存器,其餘寄存器雖然名字相同可是在當前模式不可見。

例如:對r13這個名字來講,在ARM中共有6個名叫r13(又叫sp)的寄存器,可是在每種特定處理器模式下,只有一個r13是當前可見的,其餘的r13必須切換到他的對應模式下才能看到。這種設計叫影子寄存器(banked register)

 

注意: System模式使用user模式寄存器集

Sp:棧指針寄存器。

lr:保存指針

Cpsr:程序狀態寄存器

Spsr:保存cpsr狀態寄存器

3.1.2總結

(1)ARM共有37個寄存器,都是32位長度

(2)37個寄存器中30個爲「通用」型,1個固定用做PC,一個固定用做CPSR,   5個固定用做5種異常模式下的SPSR。

3.2 CPSR程序狀態寄存器

 

(1)Mode位:

     處理器模式位(7種)

(2)T Bit

僅ARM  xT架構支持

T = 0: 處理器處於 ARM 狀態

T = 1: 處理器處於 Thumb 狀態

(3)中斷禁止位:

I  = 1: 禁止  IRQ.

F = 1: 禁止  FIQ.

(4)J 位

僅ARM 5TE/J架構支持

J = 1:  處理器處於Jazelle狀態

(5)Q 位:

僅ARM 5TE/J架構支持

指示飽和狀態

 (6)條件位:

N = Negative result from ALU

(當運算爲負的自動爲1)

Z = Zero result from ALU

(當運算爲0的自動爲1)

C = ALU operation Carried out

(當運算進位自動爲1)

V = ALU operation oVerflowed

(當運算溢出自動爲1)

3.2.2注意

(1)CPSR中各個bit位代表了CPU的某些狀態信息,這些信息很是重要, 和後面學到的彙編指令息息相關(譬如BLE指令中的E就和CPSR中 的Z標誌位有關)

(2)CPSR中的I、F位和開中斷、關中斷有關

(3)CPSR中的mode位(bit4~bit0共5位)決定了CPU的工做模式, 在uboot 代碼中會使用匯編進行設置。

相關文章
相關標籤/搜索