嵌入式系統 概述 ARM指令

2021-06-22 05:19:02 字數 2628 閱讀 7574

嵌入式系統是以應用為中心,以計算機技術為基礎,採用可裁剪軟硬體,適用於對功能、可靠性、成本、體積、功耗等有嚴格要求的專用計算機系統。它一般由嵌入式微處理器、外圍硬體裝置、嵌入式作業系統及使用者應用程式四部分組成。

簡單說,網咖裡的電腦是通用計算機,而***

、豆漿機等內含的都有嵌入式系統。嵌入式系統的特點是功耗低、體積小、成本低。

arm微處理器是主流的嵌入式處理器。

嵌入式作業系統有:windows ce

、android

、vxworks

等。arm的全稱是 

advanced risc machine。

risc,

reduced instruction set computer

,精簡指令集計算機,與之相對的是

complex isc

。前者因指令集簡單,所以硬體電路簡單,故**低。

arm處理器支援兩種指令集:

arm指令集(

32位)、

thumb

指令集(16位)

。對應相應兩種狀態。

運算元暫存器的狀態位(位0)為1

時,可以採用執行

bx指令的方法,使微處理器從

arm狀態切換到

thumb

狀態。

arm有使用者模式和特權模式。

異常:exception

。原有流程被打斷,轉而執行新的流程叫異常。例如處理乙個外部的中斷請求。在處理異常之前,當預處理器的狀態必須保留,這樣當異常處理完成之後,當前程式可以繼續執行。

arm有:

31個通用暫存器,均為

32位的暫存器;具體有三類——未分組暫存器r0~

r7,分組暫存器r8~

r14,程式計數器

pc(r15)。

r13在

arm指令中常用作堆疊指標,但這只是一種習慣用法,使用者也可使用其他的暫存器作為堆疊指標。

6個狀態暫存器,用以標識

cpu的工作狀態及程式的執行狀態,均為

32位。

定址空間為4g。

資料儲存有小端模式——低位址儲存資料的高位和大端模式——低位址儲存資料的低位。

arm微處理器中支援位元組(

8位)、半字(

16位)、字(

32位)三種資料型別,其中,字需要

4位元組對齊(位址的低兩位為

0)、半字需要

2位元組對齊(位址的最低位為0)

1.立即數定址;

其實並不需要真正的定址,運算元已經在指令中了。立即數一般以『#

』為字首。

2.暫存器定址;

運算元在暫存器中,不需訪問儲存器。

3.暫存器移位定址;

add r1,r1,r2,ror #0x2;         ;r2迴圈右移兩位後與

r1相加,結果放入

r1中。

4.暫存器間接定址;

此時暫存器中儲存的是位址。

str r1,[r2]       ;將

r1的值存入

r2所指位址的儲存器中

5.基址變址定址;

6.多暫存器定址;

ldmia r0,;r0->r1,r0+4->r2,...,r0+16->r5

7.堆疊定址;

棧是一種後進先出的資料結構。棧指標始終指向棧頂,這個暫存器一般是r13.

8.相對定址;

load/store ——從儲存器中讀某個值

,操作完後再將其放回儲存器中

arm指令的一般格式見下:

{}     , 

<>表示必須;

{}表示可選。

rd:目標暫存器;  rn:第

1個運算元的暫存器;

1.跳轉指令

將程式計數器pc

的值改寫為跳轉目的位址。 

mov pc,#immediate

b (branch)

基本跳轉指令。 b,label1

bl(branch with link)

中,一般用於函式呼叫。

bx(branch and exchange)

用於arm

和thumb

狀態間的轉換。

2.mov

mov   rd,operand2 ;資料傳送,rd

←operand2 

3.add adc 

add     r1,r1,r2,lsl #2       ;r1=r1+r2<<2 

4.sub sbc

subs r0,r0,#240 ;r0=r0-240 ,並影響標誌位 

5.and orr 

分別是c++

中的 && || 

6.cmp

cmp  rn,

operand2   將rn

暫存器的值減去

operand2

的值,除了最後的計算結果被丟棄外,整個過程和

subs

相同。

7.mul

乘法指令

ads(arm developer suite),是在2023年由metrowerks公司開發是arm處理器下最主要的開發工具。

arm嵌入式系統執行概述

一 嵌入式系統中的儲存對映 在arm體系結構中,系統復位後將跳轉到位址0x00x處執行,該處存放的是復位異常中斷的中斷向量。對於嵌入式系統來說,在系統復位時 ram中是不存在 和資料的。因此在系統復位時,位址0x00處應為rom,即系統復位後應該首先從rom開始執行。這時,根據系統在其後執行過程中地...

嵌入式系統概述

計算機的分類 按照體系結構 執行速度 結構規模和適用領域分為 大型計算機,中型計算機,小型計算機和微型計算機。按照嵌入式應用和非嵌入式應用分為 通用計算機和嵌入式計算機。通用計算機一般具有標準的硬體配置,通過安裝不同的應用軟體,以適應各種不同的應用需求 嵌入式計算機一般是以嵌入式系統的形式隱藏在各種...

嵌入式系統(三) ARM 指令彙編(3)

在 2 中基本上把arm的儲存訪問指令過了一遍,今天搞搞其他型別的指令。3 arm分支指令 4 協處理器指令 資料處理指令大致可分為3類 資料傳送指令 算術邏輯運算指令 比較指令。資料處理指令只能對暫存器的內容進行操作,而不能對記憶體中的資料進行操作。所有arm資料處理指令均可選擇使用s字尾,並影響...