柚子快報邀請碼778899分享:arm開發(fā) ARM基礎概念
柚子快報邀請碼778899分享:arm開發(fā) ARM基礎概念
1. ARM的含義
ARM是Advanced RISC Machines的簡寫,有三個含義:
a: 一個生產(chǎn)高級RISC(精簡指令集)處理器的公司 b: 一種高級RISC的技術 c: 一類采用高級RISC的處理器
2. 體系結構
ARM采用哈佛結構:數(shù)據(jù)和地址分開存儲,有并發(fā)性 特點:分開存儲、獨立編址、兩倍帶寬、執(zhí)行效率更高。
與之相對的是馮·諾依曼結構,其數(shù)據(jù)和指令一起存儲 特點是:單一存儲、統(tǒng)一編址、分時復用。
3. 流水線
ARM 一般采用三級流水線,在一些高級的指令系統(tǒng)中采用五級流水線(更高級的有十三級流水線)
4. RISC
在半導體芯片領域,指令集是一切軟硬件生態(tài)的起點。 指令為引導硬件的工作方式,集為集合。常用的指令集主要分為兩類:
復雜指令集(CISC:Complex Instruction Set Computing) CISC指令集豐富,對常用功能還是特殊功能都有特定的指令集,但是每個指令位數(shù)都較長。執(zhí)行效率以及處理數(shù)據(jù)效率較低,但對特殊功能還是常用功能都較容易編寫。
精簡指令集(RISC:Reduced Instruction Set Computer) RISC指令集中的指令相對較少,多數(shù)為常用的指令,他們具有簡單高效的特點。對不常用的功能,常通過組合指令來完成,因此,在RISC機器上實現(xiàn)特殊功能時,效率可能較低,但可以用流水技術和超標量技術加以改進和彌補。 精簡指令集的基本思想為:盡量簡化指令功能,只保留那些功能簡單、能夠在一個節(jié)拍內(nèi)執(zhí)行完成的指令。
5. ARM的寄存器
5.1 ARM 處理器一般共有 37 個寄存器,其中包括:
(1) 31 個通用寄存器,包括 PC(程序計數(shù)器),都是 32 位的寄存器。 (2) 6 個狀態(tài)寄存器,都是 32 位的寄存器。
ARM 處理器共有 7 種不同的處理器模式: 用戶模式(User) 快速中斷模式(FIQ) 普通中斷模式(IRQ) 管理模式(Svc) 數(shù)據(jù)訪問中止模式(Abort) 未定義指令中止模式(Und) 系統(tǒng)模式(Sys)
在每一種處理器模式中有一組相應的寄存器。在任意一種處理器模式下,可見的寄存器包括 15 個通用寄存器(R0~R14)、一個或者二個狀態(tài)寄存器以及程序計數(shù)器(PC)。在所有的寄存器中,有些是各模式共用同一個物理寄存器,有些寄存器是各個模式自己擁有獨立的物理寄存器
其中 : r0-r3 主要用于子程序間傳遞參數(shù), r4-r11 主要用于保存局部變量,但在 Thumb 程序中,通常只能使用 r4~r7 來保存局部變量; r12 用作子程序間scratch 寄存器,即 ip 寄存器; r13 通常用做棧指針,即 sp; r14 寄存器又被稱為連接寄存器(lr),用于保存子程序以及中斷的返回地址; r15 用作程序計數(shù)器(pc),由于 ARM 采用了流水線機制,當正確讀取了 PC 的值后,該值為當前指令地址加 8 個字節(jié),即 PC 指向當前指令的下兩條指令地址。
CPSR和SPSR都是程序狀態(tài)寄存器,其中SPSR是用來保存中斷前的CPSR中的值,以便在中斷返回之后恢復處理器程序狀態(tài)。
5.2 R0-R15寄存器 根據(jù)“ARM-thumb 過程調(diào)用標準”:
R0-R3 用作傳入函數(shù)參數(shù),傳出函數(shù)返回值。 在子程序調(diào)用之間,可以將 r0-r3 用于任何用途。 被調(diào)用函數(shù)在返回之前不必恢復 r0-r3。 如果調(diào)用函數(shù)需要再次使用 r0-r3 的內(nèi)容,則它必須保留這些內(nèi)容。 R4-R11 被用來存放函數(shù)的局部變量。 如果被調(diào)用函數(shù)使用了這些寄存器,它在返回之前必須恢復這些寄存器的值。 R12 是內(nèi)部調(diào)用暫時寄存器 ip。 它在過程鏈接膠合代碼(例如,交互操作膠合代碼)中用于此角色。 在過程調(diào)用之間,可以將它用于任何用途。 被調(diào)用函數(shù)在返回之前不必恢復 r12。 R13 是棧指針 sp。 它不能用于任何其它用途。sp 中存放的值在退出被調(diào)用函數(shù)時必須與進入時的值相同。 R14 是鏈接寄存器 lr。 如果您保存了返回地址,則可以在調(diào)用之間將 r14 用于其它用途,程序返回時要恢復 R15 是程序計數(shù)器 PC。 它不能用于任何其它用途。 注意:在中斷程序中,所有的寄存器都必須保護,編譯器會自動保護R4~R11
詳見:
https://www.cnblogs.com/zjy0806/p/11956959.html
https://blog.csdn.net/Z_H_Z_0/article/details/106574292
6. 分類
A系列(應用程序型): 具有MMU,多媒體加速處理單元等特性,適用于高端消費電子設 備、網(wǎng)絡設備、移動Internet設備和企業(yè)市場。
R系列(實時型) : 具有MPU,該系列適用于高性能實時控制系統(tǒng),如Cortex -R4用于硬盤驅動器和汽車系統(tǒng)的電子控制單元。
M系列(微控制器型) : 該系列可快速進行中斷處理,適用于需要高度確定的行為和最少門數(shù)的成本敏感型設備。主要用于嵌入式和工業(yè)控制。
7. 其他(Cortex-M3為例)
Cortex M3 (CM3) 采用哈佛結構,擁有獨立的32位指令總線和數(shù)據(jù)總線,寄存器和存儲器也是32位。 與內(nèi)核緊密耦合的NVIC (Nested Vectored Interrupt Controller,即嵌套向量中斷控制器)多種中斷機制,可提高中斷響應速度和效率。符合CMSIS(Cortex微處理器軟件接口標準)。全面支持32位Thumb-2(子集)和16位Thumb指令集。
NVIC詳見鏈接:
https://www.cnblogs.com/Rane/p/13603323.html
https://blog.csdn.net/DLUTXIE/article/details/7059184?locationNum=4&fps=1
CMSIS詳見:
https://mp.weixin.qq.com/s/n5_Ml8uOHcVKXJ8L-rOW-g
https://blog.csdn.net/Zhang_ChuanCong/article/details/97000949
柚子快報邀請碼778899分享:arm開發(fā) ARM基礎概念
參考文章
本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉載請注明,如有侵權,聯(lián)系刪除。