ARM Cortex-M

和Silicon Labs所設計的ARM Cortex-M0和and Cortex-M3微控制器()]]

24  MHz ARM Cortex-M3 单片机,有16千字节闪存,4 KB RAM。由意法半導體生產]]

ARM Cortex-M是ARM架構處理器核心中,低階系列的統稱,由安謀控股所授權。這組核心的特點為低成本以及高能源效率的微處理器而最佳化設計,已有上千萬個消費性設備中有此系列的微處理器。此系列核心包括Cortex-M0、Cortex-M0+、Cortex-M1、Cortex-M3、Cortex-M4、Cortex-M7、Cortex-M23、Cortex-M33、Cortex-M35P和Cortex-M55。其中Cortex-M4 / M7 / M33 / M35P / M55 核心有浮点运算器的選項,若有浮点运算器的選項,會在型號後面說明,例如Cortex-Mx with FPU或Cortex-MxF,其中x是核心編號。
簡介
ARM Cortex-M系列是為了单片机、特殊應用積體電路(ASIC)、應用專門標準產品(ASSP)、现场可编程逻辑门阵列(FPGA)及单片系统(SoC)設計的ARM微處理器核心。Cortex-M核心常用在
專用微控制器晶片中,但也會藏在SoC晶片中,例如電源管理制器、輸入/輸出控制器、系統控制器、觸碰螢幕控制器、智慧電池控制器以及感測器控制器。

以往8位元的微控制器相當流行,但低階的Cortex-M晶片已經降價,佔據了一些8位元微控制器的市場。在取代8位元微控制器時,Cortex-M是常出現的選項,因為有32位元數學運算上的優勢,也會用來替換一些較舊的ARM核心 ,例如ARM7及ARM9。

授權
安謀控股不會以其自身的技術生產CPU或販售CPU,而是其將處理器的架構授權給其他有意願開發的公司。安謀有許多不同的授權條款,差異在成本以及可交付成果。對於所有的授權,安謀都會提出一份可整合的ARM核心硬體描述,也包括完整的軟體開發工具組,以及販售包括ARM CPU在內的積體電路的權利。

矽定制
整合元件製造廠(IDM)收到的ARM處理器知识产权,是可逻辑综合的寄存器传输级(用Verilog所寫)。以此型式,整合元件製造商可以進行架構層級的最佳化以及延伸,可以讓製造商達成其客戶的設計目的,例如高時脈速度、非常低的能耗、指令集延伸(包括浮點數)、針對大小的最佳化、除錯器的支援等。若要確認特定的ARM CPU晶片中已有那些功能,則需確認製造商的資料表以及相關文件。

Cortex-M核心的部份選配機能如下:

  • SysTick計時器:24位元的系統計時器,延伸了處理器以及巢狀向量中斷控制器(Nested Vectored Interrupt Controller、NVIC)的機能。若有此計時器,也可以提供額外的SysTick中斷,可以配置其優先權 ||
  • 註:軟體在試圖使用特定機能時,需要先確認該機能是否有效
  • 註:Cortex-M35P的公開資料不多,一直到其技術參考手冊發行後才有改善。

額外的矽智財選項。這些架構是二進制的指令碼,可以和ARMv6-M、 ARMv7-M、ARMv7E-M向上相容。Cortex-M0 / Cortex-M0+ / Cortex-M1的指令碼不用修改就可以在Cortex-M3 / Cortex-M4 / Cortex-M7上執行。Cortex-M3上可以執行的二進制程式碼不需修改就可以在Cortex-M4 / Cortex-M7 / Cortex-M33 / Cortex-M35P上執行 || style="text-align: center;" | ARMv6-M || style="text-align: center;" | ARMv7E-M || style="text-align: center;" | ARMv8-M
Mainline:

  • ARMv6-M架構:
  • ARMv6-M架構:
  • ARMv6-M架構
  • ARMv7-M架構:
  • ARMv7E-M架構。指令集以及資料匯流排已由32-bit寬度增加到64-bit寬度。若內核中有FPU,會稱為Cortex-M7F,不然會稱為Cortex-M7。

Cortex-M7內核的主要特點有:

  • ARMv7E-M架構
  • 6階管線以及分支預測。在ARM Cortex-M內核中是最多的。
  • 指令集:

** Thumb-1(完整)
** Thumb-2(完整)
** 32-bit硬體整數乘法,結果可以是32-bit或64-bit,有號或無號,在乘法後允許加法或減法。32-bit乘法及乘積累加(MAC)是一個週期
** 32-bit硬體整數除法(2–12週期)
** 支援饱和运算
** DSP延伸:單一週期16/32-bit MAC,單一週期雙16-bit MAC,8/16-bit SIMD運算

  • 1至240個中斷,以及不可遮罩中斷
  • 12個週期的中斷延遲
  • 整合休眠模式

矽智財選項

  • 可選的浮點運算器(FPU):單精度或雙精度,都和IEEE-754-2008相容,稱為FPv5延伸
  • 可選的CPU缓存:0至64 KB 的指令緩存,0至64 KB 的資料緩存,都有可選的纠错内存
  • 可選的緊密耦合記憶體(TCM):0至16 MB 指令TCM,0至16 MB 資料TCM,都可以選擇要不要ECC.
  • 可選的記憶體保護單元(MPU):8區或16區。
  • 可選的嵌入式追蹤巨集電路元(ETM):可以只針對指令,或針對指令及資料。
  • 可選的休眠模式保留模式(配合Arm功率管理元件)。

Cortex-M23
Cortex-M23內核在2016年10月上市,以2015年11月發佈的ARMv8-M架構為基礎。在概念上Cortex-M23類似Cortex-M0+,加上整數除法指令、TrustZone安全特性、也是二層管線。

Cortex-M23核心的主要特點有。

目前此晶片的公開資料不多,只有技術參考手冊。到2020年2月為止,尚未看到各廠商推出此系列的微處理器。

Cortex-M55
Cortex-M55是在2020年2月發佈,是以2019年2月發佈的Armv8.1-M架構為基礎,有四階指令管道。

Cortex-M55核心的主要特點有:

  • ARMv8.1-M Mainline/Helium內核
  • 四階管道
  • 堆疊邊界限制(只有在SAU選項開啟時才有)

矽智財選項

  • Helium (M-Profile Vector Extension, MVE)
  • 單精度和雙精度的浮點運算器
  • 可選的DSP延伸
  • 可選的TrustZone安全延伸
  • 支援RAS(Safety and reliability)功能
  • 支援協處理器
  • 區分安全區和非安全區的MPU,可以分為0, 4, 8, 12或16個區
  • 安全屬性單元可以分為0, 4或8個區
  • 指令緩存,大小可以設定為4KB, 8KB, 16KB, 32KB, 64KB
  • 資料緩存,大小可以設定為4KB, 8KB, 16KB, 32KB, 64KB
  • 緩存及TCM支援ECC
  • 1–480個中斷
  • 3–8個例外優先位元
  • 內部和外部的唤醒中断控制器(WIC)選項,可選的CTI, ITM及DWT
  • ARM客製指令(未來發佈的版本中會支援)

文件
ARM晶片的文件很多。 過去八位元的微處理器只有一份文件,不過隨著微處理器的進步,許多功能都需要支援。ARM晶片的文件包一般會包括IC製造商以及CPU內核供應商(Arm)的文件。

典型的文件結構如下:

;文件樹(從上到下)

IC製造商網頁

IC製造商宣傳投影片

IC製造商實際晶片的數據表

IC製造商該晶片家族的參考手冊,其中有常用週邊以及特點

ARM內核網站

ARM內核通用使用手冊

ARM內核技術參考手冊

ARM架構參考手冊

IC製造商可能會有其他資料,例如開發板使用手冊、應用指南、快速手冊、軟體函式庫文件、已知問題等。
參考資料
延伸閱讀

  • Embedded Systems with ARM Cortex-M Microcontrollers in Assembly Language and C; 3rd Ed; Yifeng Zhu; 738 pages; 2017; .
  • Designer's Guide to the Cortex-M Processor Family; 2nd Ed; Trevor Martin; 490 pages; 2016; .
  • ARM Assembly for Embedded Applications; 3rd Ed; Daniel Lewis; 318 pages; 2017; .
  • Definitive Guide to the ARM Cortex-M0 and Cortex-M0+ Processors; 2nd Ed; Joseph Yiu; 784 pages; 2015; .
  • Definitive Guide to the ARM Cortex-M3 and Cortex-M4 Processors; 3rd Ed; Joseph Yiu; 600 pages; 2013; .
  • Digital Signal Processing and Applications Using the ARM Cortex-M4; 1st Ed; Donald Reay; 250 pages; 2014; .
  • Embedded Systems: Introduction to ARM Cortex-M Microcontrollers; 5th Ed; Jonathan Valvano; 506 pages; 2012; .
  • Assembly Language Programming: ARM Cortex-M3; 1st Ed; Vincent Mahout; 256 pages; 2012; .

外部連結

评论 (0)

  • 还没有评论,来抢沙发吧。