ARM複習總結

2021-11-06 20:07:50 字數 4988 閱讀 9911

arm複習重點概括

※對嵌入式系統的定義多種多樣,但沒有一種定義是全面的。下面給出兩種比較合理定義:

1、從技術的角度定義:以應用為中心、以計算機技術為基礎、軟體硬體可裁剪、適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。

2、從系統的角度定義:嵌入式系統是設計完成複雜功能的硬體和軟體,並使其緊密耦合在一起的計算機系統。術語嵌入式反映了這些系統通常是更大系統中的乙個完整的部分,稱為嵌入的系統。

嵌入的系統中可以共存多個嵌入式系統。

(嵌入式系統主要關心的四個方面:效能、尺寸、能耗和**。)

※嵌入式系統的分類以及片上系統的概念及定義

1、嵌入式微處理器(embedded microprocessor unit ,empu);

2、微控制器(microcontroller unit,mcu);

3、dsp處理器(digital signal processor,dsp);

4、片上系統(system on chip,soc),在乙個矽片上實現的乙個複雜的系統,這樣使應用系統電路板變得更簡潔,對於減小體積和功耗、以及提高可靠性非常有利。可以分專用和通用兩類。

※arm晶元的命名和arm7tdmi的含義

1、a應用處理器(application processor )系列、r實時控制處理(real time control )系列、m微控制器(micro controller )系列。

2、arm7tdmi是基於arm體系結構v4版本的低端arm核

※arm儲存方式以及字對齊

1、從偶數字址開始的連續2個位元組構成乙個半字;以能被4整除的位址開始的連續4個位元組構成乙個字;arm指令的長度剛好是乙個字,thumb指令的長度剛好是乙個半字。

2、 如果乙個資料是從偶位址開始的連續儲存,那麼它就是半字對齊,否則就是非半字對齊;如果乙個資料是以能被4整除的位址開始的連續儲存,那麼它就是字對齊,否則就是非字對齊。

※arm**流水

1、正常操作過程中,在執行一條指令的同時對下一條(第二條)指令進行解碼,並將第三條指令從儲存器中取出。(取址、解碼、執行)

2、程式計數器r15(pc)總是指向「正在取指」的指令,而不是指向「正在執行」的指令或「正在解碼」的指令。一般來說,人們習慣性約定將「正在執行」的指令作為參考點,則:pc值=當前程式執行位置+8 。

(注:arm狀態時,每條指令為4位元組長,thumb指令為2位元組長度)

※arm處理器狀態

1、 arm7tdmi處理器核心包含2套指令系統,分別為arm指令集和thumb指令,並且各自對應1種處理器的狀態:arm狀態:32位,處理器執行字方式的arm指令,處理器預設為此狀態;thumb狀態:

16位,處理器執行半字方式的thumb指令。(執行bx指令,切換處理器狀態)

※arm處理器模式

1、arm體系結構支援7種處理器模式,分別為:使用者模式、快中斷模式、中斷模式、管理模式、中止模式、未定義模式和系統模式。這樣的好處是可以更好的支援作業系統並提高工作效率。

除使用者模式外,其它模式均為特權模式。特權模式中除系統模式以外的五種模式稱為異常模式。

※arm內部暫存器

1、在arm處理器內部共有37個使用者可訪問的暫存器,分別為31個通用32位暫存器和6個狀態暫存器。對於7種不同的處理器模式,每種模式都有一組相應的暫存器組,最多可以18個活動的暫存器。

a、暫存器r0~r7為未分組的通用暫存器,它們在任何處理器模式都對應於相同的32位物理暫存器。

b、暫存器r8~r12有兩個分組的物理暫存器。乙個用於除fiq模式之外的所有暫存器模式,另乙個用於fiq模式。

c、暫存器r13通常作為堆疊指標(sp),用於儲存待使用的暫存器的內容。

d、暫存器r14稱為鏈結暫存器(lr),在結構上有兩個特殊功能:1、當使用bl指令呼叫子程式時,返回位址將自動存入r14中;2、當發生異常時,將r14對應的異常模式版本設定為異常返回位址(有些異常有乙個小的固定偏移量)。

e、暫存器r15稱為程式計數器(pc),它指向正在「取指」的指令。

f、暫存器cpsr為當前程式狀態暫存器,在異常模式中,另外乙個暫存器「程式狀態儲存暫存器(spsr)」可以被訪問。每種異常都有自己的spsr,在進入異常時它儲存cpsr的當前值,異常退出時可通過它恢復cpsr。

2、thumb狀態暫存器集是arm狀態集的子集,程式設計師可以直接訪問的暫存器為:

8個通用暫存器r0~r7;

程式計數器(pc);

堆疊指標(sp);

鏈結暫存器(lr);

當前程式狀態暫存器( cpsr)。

通過bx和blx指令改變當預處理器模式,使之從arm狀態切換到thumb狀態。

※當前程式狀態暫存器

arm核心包含1個cpsr和5個僅供異常處理程式使用的spsr。cpsr反映當預處理器的狀態,其包含:

4個條件**標誌(負標誌n、零標誌z、進製標誌c和溢位標誌v );

2個中斷禁止位(irq禁止與fiq禁止);

5個對當預處理器模式進行編碼的位(m[4:0]);

1個用於指示當前執行指令的位(arm指令還是thumb指令)。

a、負標誌n:運算結果的第31位值,記錄標誌設定操作的結果;

b、零標誌z:如果標誌設定的操作為0,則置位;

c、進製標誌c:記錄無符號加法溢位,減法無借位,迴圈移位;

d、溢位標誌v:記錄標誌設定操作的有符號溢位。

e、中斷禁止控制位i和f;

f、處理器狀態位t;

g、處理器模式位m0~m4。10000:使用者、10001:

快速中斷、10010:中斷、10011:管理、10111:

中止、11011:未定義、11111:系統。

h、cpsr中的保留位被保留將來使用。當改變cpsr標誌和控制位時,請確認沒有改變這些保留位。

※arm體系的異常

1、只要正常的程式流被暫時中止,處理器就進入異常模式。例如在使用者模式下執行程式時,當外設向處理器核心發出中斷請求導致核心從使用者模式切換到異常中斷模式。如果同時發生兩個或更多異常,那麼將按照固定的順序來處理異常。

2、異常向量表

3、異常優先順序

4、異常的進入

a、將異常處理程式的返回位址(加固定的偏移量)儲存到相應異常模式下的lr;

b、將cpsr的當前值儲存到相應異常模式下的spsr;

c、設定cpsr為相應的異常模式;

d、設定pc為相應異常處理程式的中斷入口向量位址,跳轉到相應的異常中斷處理程式執行;

5、異常的退出

a、返回到發生異常中斷的指令的下一條指令處執行,即就是說將lr中的值減去偏移量後移入pc;

b、將spsr的值複製回cpsr;

c、在入口處位置的中斷禁止控制位清零。

※未定義指令異常

1、未定義指令異常是內部異常中斷,當arm處理器遇到一條自己和系統內部任何協處理器都無法執行的指令時,就會發生未定義指令異常,從而進入中斷處理程式,同時軟體可使用這一機制通過**未定義的協處理器指令來擴充套件arm指令集。

※大小端儲存模式

1、儲存器系統有兩種對映機制:

a、小端儲存器系統:在小端格式中,資料的高位元組存放在高位址中。

b、大端儲存器系統:在大端格式中,資料的高位元組存放在低位址中。

2、arm結構通常希望所有的儲存器訪問都合理的對齊,具體來說就是字訪問的位址通常是字對齊的,而半字訪問使用的位址是半字對齊的。不按這種方式對齊的儲存器訪問稱為非對齊的儲存器訪問。

a、將乙個非字(半字)對齊的位址寫入arm(thumb)狀態的r15暫存器,將引起非對齊的指令取指。

b、在乙個非字(半字)對齊的位址讀寫乙個字(半字),將引起非對齊的資料訪問。

※定址方式分類

1.暫存器定址:運算元的值在暫存器中,指令中的位址碼字段指出的是暫存器編號,指令執行時直接取出暫存器值來操作;

2.立即定址:立即定址指令中的操作碼字段後面的位址碼部分即是運算元本身,也就是說,資料就包含在指令當中;

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

4.暫存器間接定址:暫存器間接定址指令中的位址碼給出的是乙個通用暫存器的編號,所需的運算元儲存在暫存器指定位址的儲存單元中,即暫存器為運算元的位址指標;

5.基址定址:基址定址就是將基址暫存器的內容與指令中給出的偏移量相加,形成運算元的有效位址;

6.多暫存器定址:多暫存器定址一次可傳送幾個暫存器值,允許一條指令傳送16個暫存器的任何子集或所有暫存器;

7.堆疊定址:使用乙個專門的暫存器(堆疊指標)指向一塊儲存區域(堆疊),指標所指向的儲存單元即是堆疊的棧頂;

8.相對定址:相對定址是基址定址的一種變通。由程式計數器pc提供基準位址,指令中的位址碼字段作為偏移量,兩者相加後得到的位址即為運算元的有效位址。

※堆疊的型別以及滿(空)遞增(減)

1、儲存器堆疊可分為兩種:

a、向上生長:向高位址方向生長,稱為遞增堆疊;

b、向下生長:向低位址方向生長,稱為遞減堆疊。

堆疊指標指向最後壓入的堆疊的有效資料項,稱為滿堆疊;堆疊指標指向下乙個待壓入資料的空位置,稱為空堆疊。

2、四種型別的堆疊方式:

a、滿遞增:堆疊向上增長,堆疊指標指向內含有效資料項的最高位址。指令如ldmfa、stmfa等;

b、空遞增:堆疊向上增長,堆疊指標指向堆疊上的第乙個空位置。指令如ldmea、stmea等;

c、滿遞減:堆疊向下增長,堆疊指標指向內含有效資料項的最低位址。指令如ldmfd、stmfd等;

d、空遞減:堆疊向下增長,堆疊指標向堆疊下的第乙個空位置。指令如ldmed、stmed等。

※指令集介紹

1、#immed_8r——常數表示式,該常數必須對應8位位圖,即必須是乙個8位的常數通過迴圈右移偶數字可以得到的數。

2、儲存器訪問指令分為單暫存器操作指令和多暫存器操作指令。

a、單暫存器訪問ldr/str指令用於對記憶體變數的訪問、記憶體緩衝區資料的訪問、查表、外圍部件的控制操作等。

b、多暫存器載入/儲存指令可以實現在一組暫存器和一塊連續的記憶體單元之間傳輸資料。ldm為載入多個暫存器;stm為儲存多個暫存器。允許一條指令傳送16個暫存器的任何子集或所有暫存器。

它們主要用於現場保護、資料複製、常數傳遞等。

ARM複習要點

1.嵌入式系統定義及特點,舉例 2.嵌入式處理器分類 三種作業系統 b.嵌入式作業系統基本概念 c.使用實時作業系統主要有以下幾個因素 d.常見的嵌入式作業系統 b.複雜指令集計算機 cisc 結構特性 體系結構的特點 系列廣泛應用於多 和嵌入式裝置,包括internet裝置 網路和數據機裝置,以及...

什麼叫arm架構?ARM的技術實現

什麼叫arm架構 arm架構過去稱作高階精簡指令集機器 advancedriscmachine,更早稱作 acornriscmachine 是乙個32位精簡指令集 risc 處理器架構,其廣泛地使用在許多嵌入式系統設計。由於節能的特點,arm處理器非常適用於移動通訊領域,符合其主要設計目標為低耗電的...

ARM的指令格式

熟悉使用ads開發環境。通過實驗掌握arm彙編指令的使用方法。理解arm的第二運算元的合法常量,條件碼的執行。硬體 pc機。軟體 ads整合開發環境,windows 2000 xp 2003。熟悉開發環境,理解arm的多暫存器定址方式。條件碼 使用條件碼 cond 可以實現高效的邏輯操作,提高 效率...