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