新聞中心

RTOS的發(fā)展之Armv7-M

作者: 時(shí)間:2022-10-17 來源:網(wǎng)絡(luò) 收藏

  ARMv7-M于2006(文件版本=A)問世,最近一次改版是2021(文件版本=E.e),市場(chǎng)上能搜尋到的產(chǎn)品琳瑯滿目,屬于非常成熟的商品。本文多次引用的Cortex-M4,即屬Armv7E-M的架構(gòu)。

本文引用地址:http://butianyuan.cn/article/202210/439160.htm

  以一個(gè)問世十多年、且廣受歡迎的平臺(tái)來說,其設(shè)計(jì)應(yīng)有獨(dú)到之處,本節(jié)將列出幾項(xiàng)值得關(guān)注的特性。

從架構(gòu)談起

  Cortex-M平臺(tái)在最初設(shè)計(jì)時(shí),已將Coprocessor納入考慮,且最多可支持16個(gè)協(xié)同處理器。M4內(nèi)置的FPU,就是使用第10,11兩個(gè)位置,透過它,M4可以快速的處理單精度的浮點(diǎn)數(shù),對(duì)比傳統(tǒng)的軟件方式,效能上有10倍以上的提升。

  除了FPU外,Armv7E-M架構(gòu)還內(nèi)含了DSP指令集,在SIMD,Saturate,Q-Format等指令的助攻下,使得32 bit Cortex-M4在運(yùn)算能力上,來到了一個(gè)新的高度,已經(jīng)遠(yuǎn)遠(yuǎn)的、超過了早期8 bit MCU的水準(zhǔn)。

  除此之外,ARM在除錯(cuò)的支持上非常齊全,但不在本次的討論范圍。

運(yùn)作模式的探討

  Cortex-M的內(nèi)核,支持兩種運(yùn)作模式,分別是Thread mode,以及Handler mode,后者是發(fā)生中斷時(shí),CPU所切換的模式。

  Thread mode提供兩個(gè)特權(quán)等級(jí),分別是Privileged及Unprivileged,一般的作法,會(huì)讓OS有特權(quán),應(yīng)用程序則無,此外,透過CONTROL寄存器,還可選擇使用不同的堆棧指針(MSP or PSP)。

  看似平常的模式,其實(shí)有下列幾個(gè)亮點(diǎn):(1)Handler mode的離開方式,跟一般函式相同。(2)CPU進(jìn)出Handler時(shí),硬件會(huì)自動(dòng)PUSH/POP多個(gè)緩存器。(3)內(nèi)建的異步PendSV例外功能。(4)異步例外支持Active and Pending state。

中斷及例外處理的優(yōu)先權(quán)

  全系列的Cortex-M都內(nèi)建了NVIC,NVIC(Nested Vectored Interrupt Controller)緊密的整合于核心旁,可支持高達(dá)496個(gè)中斷、并提供256階優(yōu)先權(quán)。

  NVIC所提供的巢狀中斷服務(wù),由硬件執(zhí)行ISR的Preemption工作,還加碼Late arrival及Tail chaining機(jī)制。

電源管理指令

  Cortex-M將電源管理直接指令化,WFI(Wait For Interrupt)及WFE(Wait For Event),可使CPU快速的進(jìn)入睡眠、省電狀態(tài)(Low Power State)。

  搭配SCR(System Control Register)的多個(gè)旗標(biāo):SEVONPEND,SLEEPONEXIT,SLEEPDEEP等,還可執(zhí)行進(jìn)階的設(shè)定。

無鎖的同步指令

  為了解決關(guān)鍵區(qū)段的保護(hù)問題,并避免關(guān)閉中斷造成的損失,的LDREX/STREX,以指令的方式,達(dá)成non-blocking的內(nèi)存同步請(qǐng)求。由硬件協(xié)助確保read-modify-write的正確性。

A fit real time kernel for Cortex-M

  談了許多的缺點(diǎn),又列出了的特色后,我們是否應(yīng)跳出舊的思維,并以創(chuàng)意及創(chuàng)新的觀點(diǎn),提出新的軟件作法呢?

作者:科技下午茶啃泥https://www.bilibili.com/read/cv15839248?spm_id_from=333.999.0.0



關(guān)鍵詞: 嵌入式 RTOS 系統(tǒng) Armv7-M

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉