第一章ARM處理器
1.1ARM處理器簡介
1.1.1 ARM概念
ARM(Advanced RISC Machine),既可以認為是一個公司的名字,也可以認為是對一類微處理器的通稱,是一款高級RISC(精簡指令集)微處理器,還可以認為是一種技術的名字,ARM 公司并不生產芯片也不銷售芯片,它只出售芯片技術授權,其合作公司針對不同需求搭配各類硬體部件,比如 UART、SDI、I2C等,從而設計出不同的 SoC 芯片,
1.1.2 ARM應用場景
基于 ARM 的處理器具有高速度、低功耗、價格低等優點被廣泛應用于以下領域:
為通信、消費電子、成像設備等產品,提供可運行復雜作業系統的開放應用平臺;
在海量存盤、汽車電子、工業控制和網路應用等領域,提供實時嵌入式應用;
安全系統,比如信用卡、SIM 卡等,
1.1.3 ARM的技術特征
ARM 架構支持32位的ARM指令集和16位的Thumb指令集(大大減小了代碼的存盤空間),
處理器系列產品:
ARM Cortex-A系列:頂級主控,手機平板AP應用處理器
ARM Cortex-R系列:實時高性能處理器,硬碟控制器,車載控制產品
ARM Cortex-M系列:通用低端,工業,消費電子領域微控制器
1.2基于Cortex - M3的MCU
1.2.1Cortex-M3處理器內核與基于Cortex-M3的MCU關系
Cortex - M3內核定義:單片機的中央處理單元CPU,
Cortex-M3是ARM公司設計的ARMv7架構下Cortex系列的首秀,其目的是為了讓32位處理器加入單片機市場,Cortex-M3的特點有:性能強勁、功耗低、實時性好、代碼密度得到很大改善、使用更加方便、低成本的整體解決方案、開發工具眾多:keil、Cube…
二者的關系:
如圖1-1是基于Cortex-M3內核的MCU,Cortex-M3相當于一個小CPU(中央處理器),MCU就是我們看到的芯片,不同芯片生產廠家在得到Cortex-M3內核的使用授權之后,就可以將Cortex-M3內核用在自己的硅片設計中,然后每個廠家加入不同容量或者不同型別的存盤器和一些其他的外設就變成了不同型號的MCU,

圖1-1
1.2.2ARM指令集
ARM處理器一直支持兩種形式上相對獨立的指令集,它們分別是:
32位的ARM指令集對應處理器狀態: ARM狀態
16位的Thumb指令集對應處理器狀態:Thumb狀態
1.2.3Cortex-M3—暫存器組
Cortex-M3是一個32位處理器內核,內部的資料路徑是32位的,暫存器是32位的,存盤器介面也是32位的,CM3采用了哈佛結構,擁有獨立的指令總線和資料總線,可以讓取指與資料訪問并行不悖,這樣一來資料訪問不再占用指令總線,從而提升了性能,
Cortex-M3處理器擁有R0-R15的暫存器組,其中R13作為堆疊指標SP,SP有兩個,但在同一時刻只能有一個可以看到,這也就是所謂的“banked”暫存器,

圖1-2
R0-R12都是32位通用暫存器,用于資料操作,大多數16位 Thumb指令只能訪問R0-R7,32位 Thumb-2 指令可以訪問所有暫存器,R13: 兩個堆疊指標,Cortex-M3擁有兩個堆疊指標,然而它們是 banked,因此任一時刻只能使用其中的一個,主堆疊指標(MSP):復位后預設使用的堆疊指標,用于作業系統內核以及例外處理例程(包括中斷服務例程),行程堆疊指標(PSP):由用戶的應用程式代碼使用,堆疊指標的最低兩位永遠是 0,這意味著堆疊總是4 位元組對齊的,
R14:連接暫存器,當呼叫一個子程式時,由 R14 存盤回傳地址,
R15:程式計數暫存器,指向當前的程式地址,
Cortex-M3 還在內核水平上搭載了若干特殊功能暫存器,包括:
程式狀態字暫存器組(PSRs)
中斷屏蔽暫存器組(PRIMASK, FAULTMASK, BASEPRI)
控制暫存器(CONTROL)

圖1-3
Cortex-M3 預先定義好了“粗線條的”存盤器映射,通過把片上外設的暫存器映射到外設區,就可以簡單地以訪問記憶體的方式來訪問這些外設的暫存器,從而控制外設的作業,結果,片上外設可以使用 C 語言來操作,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/303116.html
標籤:其他
