ARM Cortex-M0 處理器是目前最小的 ARM 處理器。該處理器的芯片面積非常小,能耗極低,且編程所需的代碼占用量很少,這就使得開發人員可以直接跳過16位系統,以 接近8 位系統的成本開銷獲取 32 位系統的性能。Cortex-M0 處理器超低的門數開銷,使得它可以用在在模擬和數模混合設備中。 什么選擇 Cortex-M0? 最小的 ARM 處理器 Cortex-M0 在代碼密度和能效比方面的優勢意味著它能夠順理成章地在很廣大的應用領域里成為8/16 位系統經濟實用的升級換代產品,同時它還保留了與更強大的 Cortex-M3 和 Cortex-M4 處理器的工具及二進制向上兼容性。對于需要更低功耗或更多設計選擇的應用,完全兼容的 Cortex-M0+ 處理器是理想的候選產品。 低功耗 Cortex-M0 處理器在門數低于 12 K 時的能耗僅為 16µW/MHz(90LP 工藝,最低配置),這都得益于該處理器是建立在 ARM 作為低能耗技術的領導者以及超低能耗設備的主要推動者所具備的專業知識基礎之上。 簡單 由于僅有 56 個指令,您可以快速掌握整個 Cortex-M0 指令集及其對 C 語言友好的架構,使開發變得簡單而快速。可供選擇的具有完全確定性的指令和中斷計時使得計算響應時間十分容易。 優化的連接性 支持實現低能耗網絡互聯設備(如 Bluetooth Low Energy (BLE)、IEEE 802.15 和 Z-wave),尤其是那些需要通過增強數字功能以高效地進行預處理和傳輸數據的模擬設備。 ARM Cortex-M0 規范[td]
* 基本可用配置包括 1 IRQ + NMI,不包括調試 ARM Cortex-M 技術 每個 Cortex-M 系列處理器都有其特定優點:采用一些基本技術,而這些技術使得 Cortex-M 處理器適用于廣泛的嵌入式應用程序。
CMSIS ARM Cortex 微控制器軟件接口標準 (CMSIS) 是一個與供應商無關的硬件抽象層,用于 Cortex-M 處理器系列。CMSIS 可為接口外設、實時操作系統和中間件實現一致且簡單的處理器軟件接口,從而簡化軟件的重用。CMSIS 可縮短微控制器開發人員新手的學習過程,從而縮短新產品的上市時間。 深入:嵌套矢量中斷控制器 (NVIC) NVIC 是 Cortex-M 處理器不可或缺的部分,它為處理器提供了卓越的中斷處理能力。 Cortex-M 處理器使用一個矢量表,其中包含要為特定中斷處理程序執行的函數的地址。接受中斷時,處理器會從該矢量表中提取地址。 為減少門數和提高系統靈活性,Cortex-M 處理器采用基于堆棧的異常模型。一旦發生異常,Cortex-M 處理器就會將關鍵通用寄存器推到堆棧上。一旦完成入棧和指令取回,就會執行中斷服務例程或故障處理程序,然后自動還原寄存器以使中斷的程序恢復正常執行。這種方法不再需要編寫對于傳統 C 語言中斷服務例程來說執行堆棧操作所必需的匯編器包裝程序,從而大大方便了應用程序的開發。NVIC 支持多個中斷的嵌套(入棧),通過運用較高優先級來允許某一中斷的較早執行。對硬件中斷的全面響應 Cortex-M 系列處理器的中斷響應是從發出中斷信號到執行中斷服務例程的周期數。它包括: 檢測中斷 back-to-back 或 late arriving 的最佳處理(參見下文) 提取中斷向量地址 將易損壞的寄存器入棧 跳轉到中斷處理程序 這些任務在硬件中執行,并且包含在為 Cortex-M 處理器報出的中斷響應周期時間中。在許多其他架構中,這些任務必須在軟件的中斷處理程序中執行,從而引入延遲并帶來復雜性。 NVIC 中的 Tail chaining Back to back 中斷時序圖 在 Back to back 中斷的情況下,傳統系統會重復完整的狀態保存和還原周期兩次,從而導致更高的延遲。Cortex-M 處理器通過在 NVIC 硬件中實現 Tail chaining 技術來簡化活動的中斷和掛起的中斷之間的切換。處理器狀態會在進入中斷時自動保存,并在退出中斷時恢復。由于與軟件實現相比周期數減少,因而可顯著提高低頻系統的性能。 NVIC 對遲到的較高優先級中斷的響應 遲到中斷到達時間圖 如果在為上一個中斷執行堆棧推送期間較高優先級的中斷遲到,NVIC 會立即提取新的矢量地址來為掛起的中斷提供服務,如上所示。Cortex-M NVIC 對這些可能性提供具有確定性的響應并支持遲到和搶占。 NVIC 進行的堆棧彈出搶占 搶占時間圖 同樣,如果異常到達,NVIC 將放棄堆棧彈出并立即為新的中斷提供服務,如上所示。通過搶占并切換到第二個中斷而不完成狀態還原和保存,NVIC 以具有確定性的方式實現了縮短延遲。 從 8/16 位遷移到 ARM Cortex-M ARM Cortex-M 代碼大小優勢說明 ARM Cortex-M 處理器提供優于 8 位和 16 位架構的代碼密度。這在減少對內存的需求和最大限度地提高寶貴的芯片上閃存的使用率方面具有很大的優勢。我們將在本部分中分析此優勢的原因。 指令寬度 很多人認為 8 位微控制器使用 8 位指令,而基于 ARM Cortex-M 處理器的微控制器使用 32 位指令,其實這是一種誤解。事實上,舉例來說,PIC18 和 PIC16 指令大小分別是 16 位和 14 位。對于 8051 架構,雖然某些指令的長度為 1 字節,但許多其他指令的長度為 2 字節或 3 字節。16 位架構也是如此,其中某些指令可能占用 6 字節或更多內存。 ARM Cortex-M 處理器采用可提供極佳代碼密度的 ARM Thumb®-2 技術。通過 Thumb-2 技術,Cortex-M 處理器支持基本 16 位 Thumb 指令,這些指令經過擴展,可包括進更強大的 32 位指令。在很多情況下,C 編譯器將使用 16 位版本的指令,除非使用 32 位版本可以更有效地執行運算。 指令效率 由于沒有同時考慮到 ARM Cortex-M 處理器指令更為強大,此圖片是不完整的。在許多情況下,單個 Thumb 指令可相當于數個 8/16 位微控制器指令;這意味著 Cortex-M 設備的代碼量更少,因此可以更低的總線速度完成同一任務。 在各處理器架構之間比較 16 位乘法運算
壓縮的數據占用空間 請務必注意,Cortex-M 處理器支持 8 位和 16 位數據傳輸,可高效利用數據內存。這意味著程序員可以繼續使用他們在面向 8/16 位的軟件中使用的相同數據類型。 能效優勢 對不斷增加連接(例如,USB、藍牙和 IEEE 802.15)、具有復雜模擬傳感器(例如,加速計和觸摸屏)且成本日益降低的產品的需求,已導致需要將模擬設備與數字功能更緊密地集成,以對數據進行預處理和傳輸。大多數 8 位設備在不顯著增加 MHz(并因此不顯著增加功率)的情況下不提供支持這些任務的性能,因此嵌入式開發人員需要尋找具有更高級處理器技術的替代設備。16 位設備以前曾被用來解決微控制器應用中的能效問題。但是,16 位設備相對不高的性能意味著它們通常需要較長的活動工作周期或較高的時鐘頻率才能完成 32 位設備所完成的相同任務。 使軟件開發更加容易 基于 ARM Cortex 處理器的微控制器的軟件開發可能比 8 位微控制器產品的開發容易得多。 Cortex 處理器不但是完全可通過 C 語言進行編程的,而且還附帶各種高級調試功能以幫助定位軟件中的問題。 除 MCU 開發工具包中包括的所有附加資源外,Internet 上還有大量示例和教程,其中許多來自基于 ARM 處理器的 MCU 供應商的網站。 來源:ARM公司 |