
在電子電路設(shè)計(jì)中,很多看似復(fù)雜的設(shè)計(jì)實(shí)際上都能使用32位處理器來完成。但看似直觀的選擇實(shí)際上并不簡單,開發(fā)者可以選擇Cortex-M3或者ARM7TDMI來實(shí)現(xiàn)32位的運(yùn)算,那么這兩者有何不同?本文就將從中斷與睡眠兩個方面來對這兩種方式的不同進(jìn)行介紹。
要使用低成本的32位處理器,開發(fā)人員面臨兩種選擇,基于Cortex-M3內(nèi)核或者ARM7TDMI內(nèi)核的處理器。如何做出選擇?選擇標(biāo)準(zhǔn)又是什么?本文主要介紹了ARMCortex-M3內(nèi)核微控制器區(qū)別于ARM7的一些特點(diǎn),幫助您快速選擇。
中斷
Cortex-M3的創(chuàng)新在于嵌套向量中斷控制器NVIC。
相對于ARM7使用的外部中斷控制器,Cortex-M3內(nèi)核中集成了中斷控制器,芯片制造廠商可以對其進(jìn)行配置,提供基本的32個物理中斷,具有8層優(yōu)先級,最高可達(dá)到240個物理中斷和256個中斷優(yōu)先級。此類設(shè)計(jì)是確定的且具有低延遲性,特別適用于汽車應(yīng)用。
NVIC使用的是基于堆棧的異常模型。在處理中斷時,將程序計(jì)數(shù)器,程序狀態(tài)寄存器,鏈接寄存器和通用寄存器壓入堆棧,中斷處理完成后,在恢復(fù)這些寄存器。堆棧處理是由硬件完成的,無需用匯編語言創(chuàng)建中斷服務(wù)程序的堆棧操作。
中斷嵌套是可以是實(shí)現(xiàn)的。中斷可以改為使用比之前服務(wù)程序更高的優(yōu)先級,而且可以在運(yùn)行時改變優(yōu)先級狀態(tài)。使用末尾連鎖(tail-chaining)連續(xù)中斷技術(shù)只需消耗三個時鐘周期,相比于32個時鐘周期的連續(xù)壓、出堆棧,大大降低了延遲,提高了性能。
如果在更高優(yōu)先級的中斷到來之前,NVIC已經(jīng)壓堆棧了,那就只需要獲取一個新的向量地址,就可以為更高優(yōu)先級的中斷服務(wù)了。同樣的,NVIC不會用出堆棧的操作來服務(wù)新的中斷。這種做法是完全確定的且具有低延遲性。
睡眠
為了產(chǎn)生定期的中斷時間間隔,NVIC還集成了系統(tǒng)節(jié)拍計(jì)時器,這個計(jì)時器也可以作為RTOS和調(diào)度任務(wù)的心跳。這種做法與先前的ARM架構(gòu)的不同之處就在于不需要外部時鐘。
在中斷方面,M3采用了內(nèi)核集成的方式,而ARM7選擇了外部集成。而在睡眠方面,M3的模式較為多樣,能夠滿足開發(fā)者的不同需求。單從中斷和睡眠這兩方面來看,Cortex-M3的功能性的確要優(yōu)于ARM7,但32位設(shè)計(jì)中需要考慮的因素遠(yuǎn)遠(yuǎn)不止這兩種,在之后的文章中小編將為大家介紹更多因素。
聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電源網(wǎng)。本網(wǎng)站原創(chuàng)內(nèi)容,如需轉(zhuǎn)載,請注明出處;本網(wǎng)站轉(zhuǎn)載的內(nèi)容(文章、圖片、視頻)等資料版權(quán)歸原作者所有。如我們采用了您不宜公開的文章或圖片,未能及時和您確認(rèn),避免給雙方造成不必要的經(jīng)濟(jì)損失,請電郵聯(lián)系我們,以便迅速采取適當(dāng)處理措施;歡迎投稿,郵箱∶editor@netbroad.com。
微信關(guān)注 | ||
![]() |
技術(shù)專題 | 更多>> | |
![]() |
技術(shù)專題之EMC |
![]() |
技術(shù)專題之PCB |