Arm Cortex-M0+及其功能
Arm Cortex-M0+是一種可靠的架構,具有低功耗需求,并在緊湊而高效的形式下提供32位功能。
本文引用地址:http://2s4d.com/article/202408/461999.htmCortex-M0+并不是最新的小型低功耗處理器,事實上,一些更新的產品可能已經超過了它。然而,由于其廣泛的部署和成熟的環(huán)境,Cortex-M0+仍然是低功耗應用的有力選擇。
那么,Cortex-M0+有哪些重要特性呢?Cortex-M處理器系列整體上旨在滿足市場對低功耗和低成本設備的需求,因此適用于廣泛的應用場景。Cortex-M0+處理器進一步發(fā)展了這一系列,提供了最小的占用面積和最低的功耗。這使得Cortex-M0+成為可穿戴設備和傳感器的理想選擇。
Cortex-M0+是一個小型的32位微處理器,針對特定需求進行了優(yōu)化,并與Cortex-M0具有完全相同的指令集兼容性。這意味著在兩者之間可以使用相同的編譯器和調試工具。
Cortex-M0+有一個名為Micro Trace Buffer (MTB) 的硅選項,提供了一個簡單的指令跟蹤緩沖區(qū)。這是在Cortex-M0調試功能的基礎上增加的功能。此外,還可以將Cortex-M3和M4的一些功能添加為硅選項。
Cortex-M0+基于ARMv6-M架構,與Cortex-M0共享指令集。適用的子指令集包括大多數的Thumb-1,缺少CBZ、CBNZ、IT和一些Thumb-2指令;并且只有BL、DMB、DSB、ISB、MRS、MSR指令。
Cortex-M0+具有32位的硬件整數乘法,結果也是32位,并且支持1到32個中斷,外加NMI(非屏蔽中斷)。
Cortex-M0+的內存保護單元(MPU)的功能是監(jiān)控CPU對內存的使用,確保沒有任務會破壞內存或影響其他活動任務。通常由實時操作系統(tǒng)(RTOS)控制,MPU可以檢測未經授權的內存訪問嘗試。
Cortex-M0+中的流水線 原始的Cortex-M0內核(以及Cortex-M3和M4)采用三級流水線構建。Cortex-M0+則有所不同,它采用了兩級流水線。Cortex-M0+通過將流水線從三級減少到兩級來降低功耗并提高性能。指令每周期的效率更高,分支指令執(zhí)行的周期減少一個。第一級是取指和預解碼,第二級是主解碼和執(zhí)行。
為什么選擇兩級流水線?使用兩級而不是三級流水線可以減少對閃存的訪問。這一點很重要,因為閃存的功耗往往是微控制器總功耗的主要來源。因此,減少閃存訪問可以顯著降低整體功耗。
Cortex-M0+支持多少個中斷優(yōu)先級? Arm Cortex-M0+的一部分是嵌套向量中斷控制器(NVIC),它作為內核與任何外部中斷源之間的接口。它可以支持一個NMI,具有與其他外部中斷類似的屬性,并連接到CPU的NMI請求,但又是獨立的。
此外,外部中斷控制器(EIC)可以生成事件,并允許單獨配置每條中斷線。它還支持中斷信號的脈沖和電平檢測、低延遲異常處理和中斷尾鏈功能。
NVIC提供了外部中斷源(如外圍設備和外部引腳)與內核之間的接口。通過編程,可以將每個中斷源的優(yōu)先級設置為四個級別之一。當兩個待處理的中斷具有相同的優(yōu)先級時,可以使用此優(yōu)先級。例如,在這種情況下,優(yōu)先級較低的中斷將優(yōu)先被處理,即最低的中斷向量地址。
Cortex-M0+的性能和應用 Cortex-M0+被認為是Arm處理器中最節(jié)能的處理器之一,適用于受限的嵌入式應用。M0+內核的流水線為兩級,這使其在保持2.42 CoreMark/MHz性能的同時,實現了11.2 μW/MHz的功耗。該處理器還具有三種低功耗模式,可根據處理需求節(jié)省能源。
根據已發(fā)布的資料,Cortex-M0+內核已被廣泛應用于業(yè)界。例如:
ABOV Semiconductor A31G11x, A31G12x, A31G314
Cypress PSoC 4000S, 4100S, 4100S+, 4100PS, 4700S, FM0+
Epson S1C31W74, S1C31D01, S1C31D50
Holtek HT32F52000
Microchip SAM C2, D0, D1, D2, DA, L2, R2, R3; and PIC32CM JH and MC[31]
NXP LPC800, LPC11E60, LPC11U60
NXP (Freescale) Kinetis E, EA, L, M, V1, W0, S32K11x
Raspberry Pi RP2040 (兩個M0+內核)
Renesas S124, S128, RE, RE01
Silicon Labs (Energy Micro) EFM32 Zero, Happy
STMicroelectronics STM32 L0, G0, C0, WL (一個Cortex-M4加一個Cortex-M0+)
許多其他設備將Cortex-M0+作為輔助內核嵌入。值得注意的是,Cortex-M0+內核的小尺寸使其能夠作為嵌入在更大設備中的單一內核成功運行,作為伴隨內核。在這種安排中,Cortex-M0+可以提供任務分區(qū)和/或硬件隔離功能。
評論