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