嵌入式系统(二):ARM芯片及体系架构(上)
文章結(jié)構(gòu)
- 一、 ARM芯片主要類別
- 二、ARM Cortex-M3簡(jiǎn)介
- 1.Cortex-M3功能說明
- 2.Cortex M3的總線接口
- 3.寄存器組說明
- (1)低組寄存器,高組寄存器
- (2)堆棧指針R13:
- (3)鏈接寄存器R14
- (4)程序計(jì)數(shù)寄存器R15
- (5)特殊功能寄存器
一、 ARM芯片主要類別
?ARM7、ARM9、ARM11, ARM芯片主要用于嵌入式微處理器功能
?Cortex-M系列處理器主要是針對(duì)微控制器領(lǐng)域開發(fā)的,在該領(lǐng)域中,既需進(jìn)行快速且具有高確定性的中斷管理,又需將門數(shù)和功耗控制在最低。應(yīng)用包括:混合信號(hào)設(shè)備、智能傳感器、汽車電子等廣泛微控制器方案應(yīng)用領(lǐng)域。
?Cortex-R,A–微處理器實(shí)時(shí)處理器為要求可靠性、高可用性、容錯(cuò)功能、可維護(hù)性和實(shí)時(shí)響應(yīng)的嵌入式系統(tǒng)提供高性能計(jì)算解決方案。
1.一些相關(guān)名詞-各類架構(gòu)下比較重要的技術(shù)或者功能。
?VFP:浮點(diǎn)體系結(jié)構(gòu) (VFP:Vector Floating Point)為半精度、單精度和雙精度浮點(diǎn)運(yùn)算中的浮點(diǎn)操作提供硬件支持。為汽車動(dòng)力系統(tǒng)、車身控制應(yīng)用和圖像應(yīng)用(如打印中的縮放、轉(zhuǎn)換和字體生成以及圖形中的 3D 轉(zhuǎn)換、FFT 和過濾)中使用的浮點(diǎn)運(yùn)算提供增強(qiáng)的性能。
?SIMD:當(dāng)前的智能手機(jī)和 Internet 設(shè)備必須提供高級(jí)媒體和圖形性能,才具有競(jìng)爭(zhēng)力。ARMv6 和 ARMv7 體系結(jié)構(gòu)中的 SIMD 擴(kuò)展改進(jìn)了此類性能。可適用于眾多軟件應(yīng)用領(lǐng)域,包括視頻和音頻編解碼器,這些擴(kuò)展將性能提高了將近 75% 或更多。
?Jazelle?技術(shù):提高執(zhí)行環(huán)境(如 Java、.Net、MSIL、Python 和 Perl)速度。Jazelle技術(shù)是ARM提供的組合型硬件和軟件解決方案。
?TrustZone?安全擴(kuò)展:提供可信計(jì)算,是系統(tǒng)范圍的安全方法,針對(duì)高性能計(jì)算平臺(tái)上的大量應(yīng)用,包括安全支付、數(shù)字版權(quán)管理 (DRM) 和基于Web的服務(wù)。
?NEON:通用 SIMD 引擎可有效處理當(dāng)前和將來的多媒體格式,從而改善用戶體驗(yàn)。
?Virtualization:隨著軟件復(fù)雜性的提高,對(duì)于在同一個(gè)物理處理器上提供多種軟件環(huán)境的要求也同時(shí)增多
?NVIC(Nested Vectored Interrupt Controller): 是Cortex‐M系列處理器在內(nèi)核上搭載了一個(gè)嵌套向量中斷控制器,它與內(nèi)核有緊密的耦合。NVIC提供如下的功能:1)可嵌套中斷支持;2)向量中斷支持;3)動(dòng)態(tài)優(yōu)先級(jí)調(diào)整支持;4)中斷延遲大大的縮短;5)中斷可屏蔽。
?WIC(Wake-Up Interrupt Controller):是喚醒中斷控制器,可以使處理器和NVIC處于一個(gè)低功耗睡眠的模式。
二、ARM Cortex-M3簡(jiǎn)介
ARM Cortex-M3為了占用微控制器領(lǐng)域所生產(chǎn)的
?32-bit微處理器:32-bit的數(shù)據(jù)路徑,32-bit寄存器,32-bit處理器接口。
?“哈佛”結(jié)構(gòu):獨(dú)立的指令總線和數(shù)據(jù)總線,允許數(shù)據(jù)和指令并行訪問。這樣,數(shù)據(jù)訪問不再占用指令總線,從而提升性能。
?MPU(內(nèi)存保護(hù)單元):比較復(fù)雜的應(yīng)用需要更多的存儲(chǔ)系統(tǒng)功能,提供一個(gè)可選的MPU,在需要的情況下也可以使用外部緩存。主要起保護(hù)作用,讓不希望用戶需修改的部分受到保護(hù),而不會(huì)受到傷害。
?Cortex-M3選擇了適合于微控制器應(yīng)用的三級(jí)流水線,但增加了分支預(yù)測(cè)功能,可以預(yù)取分支目標(biāo)地址的指令,使分支延遲減少到一個(gè)時(shí)鐘周期。
?內(nèi)部調(diào)試組件:提供調(diào)試操作支持,用于在硬件水平上支持調(diào)試操作,如指令斷點(diǎn)、數(shù)據(jù)觀察點(diǎn)等功能。
1.Cortex-M3功能說明
主要包括Cortex M3處理器核心、可嵌套中斷向量控制器NVIC、總線陣列、存儲(chǔ)保護(hù)單元MPU、閃存地址重載及斷點(diǎn)單元FPB、數(shù)據(jù)監(jiān)測(cè)點(diǎn)與跟蹤DWT、儀表跟蹤宏單元ITM、嵌入跟蹤宏單元ETM、跟蹤端口接口單元TPIU、AHB訪問端口、串口線和JTAG調(diào)試口等。
2.Cortex M3的總線接口
最底部是I-code,D-code總線。中間4個(gè)事系統(tǒng)總線負(fù)責(zé)的區(qū)域,最上方有一部分是系統(tǒng)總線,剩下的是外部私有外設(shè)總線。
3.寄存器組說明
(1)低組寄存器,高組寄存器
(1)R0‐R7也被稱為低組寄存器。所有指令都能訪問它們。它們的字長(zhǎng)全是32 位,復(fù)位后的初始值是不可預(yù)料的。
(2)R8‐R12也被稱為高組寄存器。這是因?yàn)橹挥泻苌俚?6位Thumb 指令能訪問它們,32位的指令則不受限制。它們也是32位字長(zhǎng),且復(fù)位后初始值是不可預(yù)料的。
(2)堆棧指針R13:
R13是堆棧指針,Cortex-M3處理器內(nèi)核中共有兩種堆棧指針,一般調(diào)用堆棧時(shí)用的是當(dāng)前正在使用的那個(gè),如果需要轉(zhuǎn)換需要特定的代碼。
?主堆棧指針或?qū)懽鱏P_main(有特權(quán)訪問內(nèi)核或者異常服務(wù)時(shí)使用主堆棧指針)。這是默認(rèn)的堆棧指針,它由OS內(nèi)核、異常服務(wù)例程以及所有需要特權(quán)訪問的應(yīng)用程序代碼來使用。
?進(jìn)程堆棧指針(PSP)(常規(guī)應(yīng)用程序的代碼),或?qū)懽鱏P_process。用于常規(guī)的應(yīng)用程序代碼(不處于異常服用例程中時(shí))。
(3)鏈接寄存器R14
R14是鏈接寄存器(LR)。在一個(gè)匯編程序中,可以把它寫做LR或R14。LR用于在調(diào)用子程序時(shí)存儲(chǔ)返回地址,也用于異常返回。
程序計(jì)數(shù)寄存器R15
(4)程序計(jì)數(shù)寄存器R15
(5)特殊功能寄存器
Cortex‐M3 中的特殊功能寄存器包括:
① 程序狀態(tài)寄存器組(PSRs 或xPSR)
所有處理器模式下都可訪問當(dāng)前程序狀態(tài)寄存器CPSR。在每種異常模式下都有一個(gè)程序狀態(tài)寄存器SPSR。
CPSR保存當(dāng)前程序的狀態(tài),當(dāng)異常出現(xiàn)時(shí),SPSR用于保存CPSR的狀態(tài),以便異常返回后恢復(fù)異常發(fā)生時(shí)的工作狀態(tài)。
② 中斷屏蔽寄存器組(PRIMASK, FAULTMASK,以及BASEPRI)
③ 控制寄存器(CONTROL)
它們只能被專用的MSR 和MRS指令訪問,而且它們也沒有存儲(chǔ)器地址。
總結(jié)
以上是生活随笔為你收集整理的嵌入式系统(二):ARM芯片及体系架构(上)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 烤仔观察 | 哈耶克最后的预言
- 下一篇: 操作系统的安全管理