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