經(jīng)過前一期的芝識課堂,我們了解了東芝MCU產(chǎn)品所基于Arm Cortex-M3內(nèi)核的基本結(jié)構(gòu)和寄存器分配的細節(jié)。大家一定迫不及待地想知道Arm Cortex-M3內(nèi)核的操作模式又有哪些技巧吧?今天芝子就帶大家詳細學(xué)習(xí)一下吧!
Arm Cortex-M3有兩個特權(quán)(特權(quán)/非特權(quán))和兩種操作模式(線程/處理者)。對于嵌入式使用,可以選擇只有特權(quán)級別的基本配置或在特權(quán)和非特權(quán)之間切換的配置。在特權(quán)/非特權(quán)級別下,通過在分配給寄存器R13的主棧指針(MSP)與進程棧指針(PSP)之間切換,堆棧區(qū)域可由操作系統(tǒng)內(nèi)核以及用戶例程等處理功能分離和管理。
如果發(fā)生異常/中斷的程序,控制寄存器的狀態(tài)以及堆棧指針的切換情況是怎么樣的呢?如圖1所示,當(dāng)發(fā)生異常/中斷時,使用中的堆棧會隨控制寄存器CONTROL的狀態(tài)而改變。以顯示主棧指針(MSP)和進程棧指針(PSP)之間的切換狀態(tài)。
圖1 發(fā)生異常/中斷的程序時控制寄存器的狀態(tài)
以及堆棧指針的切換
Arm Cortex-M3內(nèi)核的所有異常都在特權(quán)模式下運行,且具有中斷特權(quán)并支持嵌套中斷,所有異常都集成在NVIC寄存器中。值得注意的是,因每個設(shè)備而異,部分設(shè)備中斷過程支持外部中斷。異??赏ㄟ^復(fù)位、中斷、故障和系統(tǒng)調(diào)用執(zhí)行。異常類型和特權(quán)級別如圖2所示。
圖2 異常類型和特權(quán)級別
對于集成異常的NVIC控制寄存器,當(dāng)發(fā)生異常和中斷操作時,它作為從主內(nèi)核到存儲器的設(shè)備被訪問,用于控制各中斷使能的設(shè)置與清除、控制各中斷請求的設(shè)置與清除(釋放保留)以及控制中斷的優(yōu)先級。
下面我們再帶大家了解NVIC塊的基本功能之一——外部中斷處理控制,將使能位和掛起位分配給每個外部中斷信號,并配置控制寄存器??刂萍拇嫫鞣譃閮H設(shè)置寄存器和僅清除寄存器。外部中斷的產(chǎn)生通過優(yōu)先級寄存器的信息來控制。該寄存器用于設(shè)置中斷優(yōu)先級以及使能位和掛起位的狀態(tài),如圖3。Arm Cortex-M3通過NVIC控制實現(xiàn)高速入棧/出棧處理,此外,如果中斷處理過程中同時發(fā)生中斷請求或發(fā)生高優(yōu)先級的中斷請求,則入棧/出棧處理的寄存器自動保存將被忽略,從而改善處理時間。
圖3
介紹完異常和中斷操作,我們再來看看Arm Cortex-M3規(guī)格的存儲器映射。圖4是Arm Cortex-M3規(guī)格的存儲器映射示意圖,可以清楚看到每個存儲器對應(yīng)的存儲功能。圖5則展示了這款MCU的存儲器映射細節(jié),從中可以看到相比于Arm Cortex-M3標(biāo)準的規(guī)格,該芯片的部分存儲器映射進行了深度優(yōu)化。
圖4
圖5
在CPU接收到外部中斷/異常時,它會先查詢向量表,以查找到相應(yīng)的中斷服務(wù)程序地址。向量表是指中斷服務(wù)程序入口地址的偏移量與段基址,一個中斷向量占據(jù)4字節(jié)空間。各種異常的處理者(處理例程)的起始地址是分別設(shè)置的。當(dāng)異?;蛑袛嗍录l(fā)生時,從地址開始獲取異常處理者。各種異常的向量表如圖6所示。
圖6
此外,關(guān)于位帶和位帶別名區(qū)的詳細信息如圖7所示。存儲器中的數(shù)據(jù)通過1位單元進行有效運算。1位單元通過將位帶區(qū)的數(shù)據(jù)加載或存儲到位帶別名區(qū)來訪問這些數(shù)據(jù)。
那么位帶區(qū)數(shù)據(jù)和位帶別名區(qū)的地址如何分配?位帶別名區(qū)的地址以字為單位進行分配(1個字=32位):位帶別名區(qū)的字地址bit0訪問位帶區(qū)的每個位;位帶別名區(qū)的字地址的分配方式為,每個地址分配給位帶區(qū)的每個位。
圖7
今天的芝識課堂,我們深入探討了Arm Cortex-M3內(nèi)核的操作模式,并分析了存儲器映射的具體細節(jié)。接下來我們會一起進入東芝MCU產(chǎn)品的外圍電路部分,學(xué)習(xí)如何針對不同應(yīng)用增加各種功能單元,從而助力低功耗高性能解決方案開發(fā)的,敬請期待!
審核編輯:劉清
-
存儲器
+關(guān)注
關(guān)注
38文章
7532瀏覽量
164432 -
Cortex-M3
+關(guān)注
關(guān)注
9文章
270瀏覽量
59612 -
NVIC
+關(guān)注
關(guān)注
0文章
35瀏覽量
11751 -
外部中斷
+關(guān)注
關(guān)注
1文章
132瀏覽量
15892 -
控制寄存器
+關(guān)注
關(guān)注
0文章
34瀏覽量
11524
原文標(biāo)題:芝識課堂——強大的Arm? Cortex?-M3內(nèi)核(下)
文章出處:【微信號:toshiba_semicon,微信公眾號:東芝半導(dǎo)體】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
針對ARM Cortex M3平臺的代碼移植
特大好消息:ARM Cortex-M0/M3免收授權(quán)費了
如何定制基于Cortex-M0/M3免費內(nèi)核的自主SoC
如何定制基于Cortex-M0/M3免費內(nèi)核的自主SoC | 直播報名(11.25)
ME32x系列是內(nèi)嵌ARM Cortex M0/M3核的32位微控制器
Cortex‐M3的架構(gòu)指南
Cortex M3權(quán)威指南
使用FreeRTOS TM實時內(nèi)核ARM Cortex M3版
芝識課堂【TX03微控制器】—強大的Arm? Cortex?-M3內(nèi)核(上)
![芝識課堂【TX03微控制器】—<b class='flag-5'>強大</b>的<b class='flag-5'>Arm</b>? <b class='flag-5'>Cortex</b>?-<b class='flag-5'>M3</b><b class='flag-5'>內(nèi)核</b>(上)](https://file1.elecfans.com//web2/M00/B3/58/wKgZomVlt8yAUh1YAABN3jgCfsk417.png)
評論