嵌入式系統是以應用為中心,以計算機技術為基礎,採用可裁剪軟硬體,適用於對功能、可靠性、成本、體積、功耗等有嚴格要求的專用計算機系統。它一般由嵌入式微處理器、外圍硬體裝置、嵌入式作業系統及使用者應用程式四部分組成。
簡單說,網咖裡的電腦是通用計算機,而***
、豆漿機等內含的都有嵌入式系統。嵌入式系統的特點是功耗低、體積小、成本低。
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字尾,並影響...