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