首先,在學(xué)習(xí)Cortex-M3時,我們必須要知道必要的縮略語。
整理如下:
AMBA:先進(jìn)單片機(jī)總線架構(gòu) ADK:AMBA設(shè)計(jì)套件AHB:先進(jìn)高性能總線 AHB-AP:AHB訪問端口APB:先進(jìn)外設(shè)總線 ARM ARM:ARM架構(gòu)參考手冊ASIC:行業(yè)領(lǐng)域?qū)S?a target="_blank">集成電路 ATB :先進(jìn)跟蹤總線
BE8:字節(jié)不變式大端模式 CPI:每條指令的周期數(shù)
DAP:調(diào)試訪問端口 DSP:數(shù)字信號處理(器)DWT:數(shù)據(jù)觀察點(diǎn)及跟蹤 ETM:嵌入式跟蹤宏單元FPB:閃存地址重載及斷點(diǎn) FSR:fault狀態(tài)寄存器
HTM:Core Sight AHB跟蹤宏單元ICE:在線仿真器 IDE:集成開發(fā)環(huán)境
IRQ:中斷請求(通常是外中斷請求)ISA:指令系統(tǒng)架構(gòu) ISR:中斷服務(wù)例程ITM:儀器化跟蹤宏單元
JTAG:連接點(diǎn)測試行動組(一個關(guān)于測試和調(diào)試接口的標(biāo)準(zhǔn))LR:連接寄存器
LSB:最低有效位
MPU:存儲器保護(hù)單元
MMU:存儲器管理單元MSP:主堆棧指針NMI:不可屏蔽中斷NVIC:嵌套向量中斷控制器PC:程序計(jì)數(shù)器PPB:私有外設(shè)總線
Cortex-M3芯片簡介
1、芯片的基本結(jié)構(gòu)如下圖
2、關(guān)于ARMv7的知識了解
在這個版本中,內(nèi)核架構(gòu)首次從單一款式變成3種款式。
款式A:設(shè)計(jì)用于高性能的“開放應(yīng)用平臺”——越來越接近電腦了
款式R:用于高端的嵌入式系統(tǒng),尤其是那些帶有實(shí)時要求的——又要快又要實(shí)時。
款式M:用于深度嵌入的,單片機(jī)風(fēng)格的系統(tǒng)中。
介紹A:用于高性能的“開放應(yīng)用平臺”,應(yīng)用在那些需要運(yùn)行復(fù)雜應(yīng)用程序的處理器。支持大型嵌入式操作系統(tǒng)。
R:用于高端的嵌入式系統(tǒng),要求實(shí)時性的。
M:用于深度嵌入的、單片機(jī)風(fēng)格的系統(tǒng)中。
3、Cortex-M3處理器的舞臺
高性能+高代碼密度+小硅片面積,使得CM3大面積地成為理想的處理平臺,主要應(yīng)用在以下領(lǐng)域:
(1)低成本單片機(jī)(2)汽車電子(3)數(shù)據(jù)通信(4)工業(yè)控制(5)消費(fèi)類電子產(chǎn)品
4、Cortex-M3的簡化圖
5、寄存器組
處理器擁有R0-R15的寄存器組,其中R13最為堆棧指針SP,SP有兩個,但是同一時刻只能有一個可以看到,這就是所謂的“banked”寄存器。
a、R0-R12都是 32位通用寄存器,用于數(shù)據(jù)操作。但是注意:絕大多數(shù) 16位Thumb指令只能訪問R0-R7,而 32位 Thumb-2指令可以訪問所有寄存器。
b、Cortex-M3擁有兩個堆棧指針,然而它們是 banked,因此任一時刻只能使用其中的一個。
6、Cortex-M3的簡評
a、高性能
許多指令都是單周期的——包括乘法相關(guān)指令。并且從整體性能上,Cortex-M3比得過絕大多數(shù)其它的架構(gòu)。
指令總線和數(shù)據(jù)總線被分開,取值和訪內(nèi)可以并行不悖 。
Thumb-2的到來告別了狀態(tài)切換的舊世代,再也不需要花時間來切換于 32位 ARM狀態(tài)和16位Thumb狀態(tài)之間了。這簡化了軟件開發(fā)和代碼維護(hù),使產(chǎn)品面市更快。
Thumb-2指令集為編程帶來了更多的靈活性。許多數(shù)據(jù)操作現(xiàn)在能用更短的代碼搞定,這意味著 Cortex-M3的代碼密度更高,也就對存儲器的需求更少。
取指都按 32位處理。同一周期最多可以取出兩條指令,留下了更多的帶寬給數(shù)據(jù)傳輸。
Cortex-M3的設(shè)計(jì)允許單片機(jī)高頻運(yùn)行(現(xiàn)代半導(dǎo)體制造技術(shù)能保證 100MHz以上的速度)即使在相同的速度下運(yùn)行,CM3的每指令周期數(shù)(CPI)也更低,于是同樣的 MHz下可以做更多的工作;另一方面,也使同一個應(yīng)用在 CM3上需要更低的主頻。
b、先進(jìn)的中斷處理功能
內(nèi)建的嵌套向量中斷控制器支持240條外部中斷輸入。向量化的中斷功能大大減少了中斷延遲,因?yàn)椴辉谛枰浖ヅ袛嘀袛嘣础V袛嗟那短滓彩窃谟布缴蠈?shí)現(xiàn)的,不需要軟件代碼來實(shí)現(xiàn)。
Cortex-M3在進(jìn)入異常服務(wù)例程時,自動壓棧了 R0-R3, R12, LR, PSR 和PC,并且在返回時自動彈出它們,這多清爽!既加速了中斷的響應(yīng),也再不需要匯編語言代碼了
NVIC支持對每一路中斷設(shè)置不同的優(yōu)先級,使得中斷管理極富彈性。最粗線條的實(shí)現(xiàn)也至少要支持 8級優(yōu)先級,而且還能動態(tài)地被修改。
優(yōu)化中斷響應(yīng)還有兩招,它們分別是“咬尾中斷機(jī)制”和“晚到中斷機(jī)制”。
有些需要較多周期才能執(zhí)行完的指令,是可以被中斷-繼續(xù)的——就好比它們是一串指令一樣。
這些指令包括加載多個寄存器(LDM),存儲多個寄存器(STM),多個寄存器參與的PUSH,以及多個寄存器參與的 POP。
除非系統(tǒng)被徹底地鎖定,NMI(不可屏蔽中斷)會在收到請求的第一時間予以響應(yīng)。對很多安全-關(guān)鍵(safety-critical)的應(yīng)用,NMI都是必不可少的(如化學(xué)反應(yīng)即將失控時的緊急停機(jī))。
通過上面我們可以很容易理解STM32的一些基本知識和結(jié)構(gòu),為學(xué)習(xí)STM32打好了基礎(chǔ)...
-
存儲器
+關(guān)注
關(guān)注
38文章
7633瀏覽量
166386 -
數(shù)字信號處理
+關(guān)注
關(guān)注
16文章
567瀏覽量
46534 -
Cortex-M3
+關(guān)注
關(guān)注
9文章
276瀏覽量
60112
原文標(biāo)題:想要從STM32小白成為達(dá)人,這些你必須知道
文章出處:【微信號:elecfans,微信公眾號:電子發(fā)燒友網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
高性能+高代碼密度+小硅片面積——Cortex-M3處理器
純干貨|最經(jīng)典的STM32-M3概述!
純干貨|最經(jīng)典的STM32-M3概述!
想要從STM32小白成為達(dá)人,這些知識你必須知道
STM32的這些經(jīng)典功能,你真的掌握了嗎?
Cortex-M3的相關(guān)資料分享
stm32中斷堆棧的相關(guān)資料分享
Cortex-M3的縮略語是什么
stm32中斷堆棧_想要從STM32小白成為達(dá)人,這些知識你必須知道

stm32中斷堆棧_STM32的這些經(jīng)典功能,你真的掌握了嗎?

stm32中斷堆棧_想要從STM32小白成為達(dá)人,這些知識你必須知道

想要從STM32小白成為達(dá)人,這些知識你必須知道

評論