資料介紹
一、故障處理
故障是異常的一個(gè)子集,見第2-19頁(yè)的異常處理模型。在NMI或HardFault異常處理時(shí)發(fā)生的故障將會(huì)引起HardFault異?;?qū)е骆i定(Lockup)。故障包含:?執(zhí)行一條SVC指令,該指令的優(yōu)先級(jí)高于或等于SVCall。?缺少調(diào)試器連接時(shí),執(zhí)行BKPT指令。
? 在加載或存儲(chǔ)數(shù)據(jù)時(shí),系統(tǒng)產(chǎn)生總線錯(cuò)誤。
? 執(zhí)行XN存儲(chǔ)區(qū)的指令。
? 執(zhí)行來自系統(tǒng)已產(chǎn)生總線故障的地址位置的指令。
? 取向量時(shí)系統(tǒng)產(chǎn)生總線錯(cuò)誤。
? 執(zhí)行一條未定義的指令。
? T位已清為0,處理器不在Thumb狀態(tài)時(shí)執(zhí)行指令。
? 試圖讀取或保存數(shù)據(jù)到未對(duì)齊的地址。
注意:只有Reset和NMI能搶占具有固定優(yōu)先級(jí)的HardFault異常。而HardFault異常則能搶占除Reset、NMI或另一個(gè)HardFault異常之外的所有異常。
1、鎖定(Lock up)
以下這些情況處理器會(huì)進(jìn)入鎖定狀態(tài):執(zhí)行NMI或HardFault異常處理時(shí)發(fā)生故障;或在使用MSP異常返回時(shí),還沒有從堆?;謴?fù)PSR寄存器的值系統(tǒng)就產(chǎn)生總線錯(cuò)誤。當(dāng)處理器處于鎖定狀態(tài)時(shí),不能執(zhí)行任何指令。處理器將保持鎖定狀態(tài)直到以下情況之一發(fā)生:
? 處理器被復(fù)位;
? 調(diào)試器中止處理器運(yùn)行;
? 發(fā)生NMI異常,并且當(dāng)前鎖定是處于HardFault異常處理中。
注意:如果鎖定狀態(tài)出現(xiàn)在NMI異常處理中,后續(xù)的NMI異常不能導(dǎo)致處理器離開鎖定狀態(tài)。
二、功耗管理
Cortex-M0處理器的睡眠模式可減少功耗,睡眠模式是在處理器實(shí)現(xiàn)時(shí)定義的,可以是以下的一種或兩種:?停止處理器時(shí)鐘的睡眠模式。
? 深度睡眠模式,停止系統(tǒng)時(shí)鐘,并關(guān)掉PLL和flash存儲(chǔ)器。
如果處理器實(shí)現(xiàn)了兩種睡眠模式,則能提供不同級(jí)別的節(jié)能,SCR寄存器的SLEEPDEEP位用于選擇睡眠模式,見下文的系統(tǒng)控制寄存器。關(guān)于深度睡眠模式的更多信息見處理器提供商所提供的資料。本節(jié)將描述進(jìn)入睡眠模式的機(jī)制,以及從睡眠模式喚醒的條件。
1、進(jìn)入睡眠模式
本節(jié)描述使處理器進(jìn)入睡眠模式的軟件機(jī)制。
系統(tǒng)可能產(chǎn)生偽喚醒事件,例如,一個(gè)調(diào)試操作可喚醒處理器。因此軟件在此事件后,必須能重新讓處理器進(jìn)入睡眠模式。為了把處理器置回睡眠模式,程序可能需要一個(gè)空閑循環(huán)。
等待中斷指令
等待中斷指令WFI,能使處理器立即進(jìn)入睡眠模式,當(dāng)處理器執(zhí)行一條WFI指令時(shí),它停止執(zhí)行指令,并進(jìn)入睡眠模式,見第3-60頁(yè)的WFI以獲取更多的信息。
等待事件指令
等待事件指令,WFE,根據(jù)條件讓處理器進(jìn)入睡眠模式,條件是根據(jù)1位事件寄存器的值。當(dāng)處理器執(zhí)行一條WFE指令時(shí),它檢查事件寄存器的值:
0 處理器停止執(zhí)行指令,進(jìn)入睡眠模式。
1 處理器將寄存器該位的值置為0,并繼續(xù)執(zhí)行指令,不進(jìn)入睡眠模式。
如果事件寄存器的值為1,表明處理器在執(zhí)行WFE指令時(shí)不能進(jìn)入睡眠模式。典型的情況:這是由于一個(gè)外部事件信號(hào)的要求,或在多處理器系統(tǒng)中的另一個(gè)處理器執(zhí)行了一條SEV指令。軟件不能直接訪問這個(gè)寄存器。
異常退出時(shí)睡眠(sleep-on-exit)
如果SCR寄存器的SLEEPONEXIT位置為1,則當(dāng)處理器完成執(zhí)行一個(gè)異常處理并返回Thread模式時(shí),處理器立即進(jìn)入睡眠狀態(tài),這一機(jī)制用于僅僅需要處理器在中斷發(fā)生時(shí)才運(yùn)行的應(yīng)用中。
2、從睡眠模式喚醒
喚醒處理器的條件依賴于導(dǎo)致處理器進(jìn)入睡眠模式的機(jī)制。從WFI或sleep-on-exit產(chǎn)生的睡眠中喚醒正常情況下,處理器只在檢測(cè)到具有足夠優(yōu)先級(jí)的異常,并進(jìn)入異常時(shí)才會(huì)喚醒。
處理器喚醒后,在執(zhí)行中斷處理之前,某些嵌入式系統(tǒng)可能必須執(zhí)行系統(tǒng)恢復(fù)任務(wù)。這通過置PRIMASK位為1來實(shí)現(xiàn)。如果一個(gè)有中斷到達(dá),該中斷被允許,并比當(dāng)前異常的優(yōu)先級(jí)高,則處理器喚醒,但直到PRIMASK位置為0,處理器才執(zhí)行中斷處理。
從WFE產(chǎn)生的睡眠中喚醒
如果出現(xiàn)以下情況,處理器將被喚醒:
? 處理器檢測(cè)到一個(gè)足夠高優(yōu)先級(jí)的異常而進(jìn)入異常。
? 處理器檢測(cè)到一個(gè)外部事件信。
? 在多處理器系統(tǒng)中的另一個(gè)處理器執(zhí)行了一條SEV指令。
另外,如果SCR寄存器的SEVONPEND位置為1,任何一個(gè)新的掛起的中斷都能觸發(fā)一個(gè)事件并喚醒處理器,哪怕該中斷是禁止的或沒有足夠的優(yōu)先級(jí)而不能進(jìn)入異常。關(guān)于SCR的更多信息見第4-16頁(yè)的系統(tǒng)控制寄存器。
3、可選的喚醒中斷控制器
處理器可能包含了一個(gè)喚醒中斷控制器(WIC),WIC是一個(gè)可選的外設(shè),能檢測(cè)中斷并將處理器從深度睡眠模式喚醒。僅當(dāng)SCR寄存器的DEEPSLEEP位置1時(shí),WIC才被允許。
WIC是不可編程的,也沒有任何寄存器或用戶接口,完全通過硬件信號(hào)工作。
當(dāng)WIC被允許,處理器進(jìn)入深度睡眠模式時(shí),系統(tǒng)功耗管理單元能關(guān)閉Cortex-M0處理器大部分組成部分的功耗。但同時(shí)也有一個(gè)副作用,就是停止了系統(tǒng)滴答定時(shí)器。當(dāng)WIC接收到一個(gè)中斷時(shí),它需要花費(fèi)幾個(gè)時(shí)鐘周期喚醒處理器,并恢復(fù)處理器的狀態(tài),而后處理器才能處理中斷。這意味著在深度睡眠模式下,中斷延時(shí)增加了。
4、外部事件信號(hào)
處理器可能包含一個(gè)外部事件信號(hào),處理器外設(shè)使用此信號(hào)與處理器聯(lián)絡(luò),用于處理器從WFE狀態(tài)喚醒;或?qū)?nèi)部的WFE事件寄存器置為1,以表示處理器在執(zhí)行下一個(gè)WFE指令后不能進(jìn)入深度睡眠模式。
5、功耗管理編程
ISO/IEC語言沒有直接產(chǎn)生WFI、WFE和SEV指令,CMSIS為這些指令提供以下內(nèi)部函數(shù):
void WFE(void)//WaitforEvent
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 到底64位處理器和32位處理器有什么區(qū)別呢?資料下載
- Cortex-M0處理器及其特性資料下載
- Cortex-M0處理器的編程模型資料下載
- Cortex-M0處理器的異常處理模型資料下載
- Cortex-M0處理器的存儲(chǔ)模型資料下載
- Cortex-M0處理器的權(quán)威指南英文原版免費(fèi)下載 0次下載
- Cortex-M4處理器的技術(shù)參考手冊(cè)免費(fèi)下載 42次下載
- CORTEX-M4處理器技術(shù)參考手冊(cè)詳細(xì)資料免費(fèi)下載 137次下載
- M3處理器的詳細(xì)原理圖資料免費(fèi)下載 58次下載
- 基于Cortex-M3處理器的開關(guān)磁阻電機(jī)控制器設(shè)計(jì) 9次下載
- 基于Cortex_M3處理器的智能建筑環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)計(jì) 9次下載
- 基于ARM Cortex-M3處理器的電源設(shè)計(jì)及應(yīng)用 14次下載
- 基于Cortex_M3處理器的__省略_MicroFramewo 0次下載
- 高性能低成本Cortex-M3處理器 27次下載
- ARM推出Cortex—M0處理器 29次下載
- Cortex-M0處理器內(nèi)核異常中斷簡(jiǎn)介 4465次閱讀
- Cortex-M0處理器的中斷請(qǐng)求形式:電平觸發(fā)和脈沖輸入 1538次閱讀
- 淺談ARM處理器的基礎(chǔ)知識(shí) 2503次閱讀
- Cortex-M3處理器中斷和FreeRTOS中斷優(yōu)先級(jí)配置 6920次閱讀
- 對(duì)Cortex-A53處理器的性能分析及特點(diǎn)概述 13.9w次閱讀
- 分析Cortex-A7處理器與Cortex-A15處理器各自的優(yōu)勢(shì)及區(qū)別 6605次閱讀
- 關(guān)于Cortex-A7處理器性能分析 3.2w次閱讀
- cortex-a9是什么處理器_cortex-a9處理器介紹 2.5w次閱讀
- 基于ARM架構(gòu)的8051應(yīng)用程序遷移過程 2210次閱讀
- a11處理器比a10快多少_A11處理器性能媲美英特爾i7? 1105次閱讀
- 驍龍625處理器與驍龍652處理器對(duì)比評(píng)測(cè) 10.3w次閱讀
- 為什么說Cortex-M是低功耗應(yīng)用的首選 3409次閱讀
- M33處理器的五大特色 2774次閱讀
- 32位嵌入式處理器與8位處理器應(yīng)用開發(fā)的區(qū)別 1528次閱讀
- 蘋果推出64位處理器:對(duì)手機(jī)而言,意味著什么? 3983次閱讀
下載排行
本周
- 1TPS54202H降壓轉(zhuǎn)換器評(píng)估模塊用戶指南
- 1.02MB | 7次下載 | 免費(fèi)
- 2華瑞昇CR215芯片數(shù)字萬用表原理圖
- 0.21 MB | 1次下載 | 3 積分
- 3SMD LED選型目錄 燈珠手冊(cè)
- 5.36 MB | 1次下載 | 免費(fèi)
- 4Tiva C系列DK-TM4C129X入門指南
- 1.69MB | 1次下載 | 免費(fèi)
- 5電涌保護(hù)器(SPD)的選擇、安裝以及裝配
- 4.57 MB | 1次下載 | 免費(fèi)
- 6時(shí)源芯微EMC前車燈案例
- 458.59 KB | 1次下載 | 免費(fèi)
- 7bq25890、bq25892雙級(jí)聯(lián)充電器EVM(PWR692)用戶指南
- 2.02MB | 1次下載 | 免費(fèi)
- 8TPS54426降壓轉(zhuǎn)換器評(píng)估模塊用戶指南
- 847.7KB | 次下載 | 免費(fèi)
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 156次下載 | 免費(fèi)
- 22024PMIC市場(chǎng)洞察
- 2.23 MB | 63次下載 | 免費(fèi)
- 3開關(guān)電源設(shè)計(jì)原理手冊(cè)
- 1.83 MB | 30次下載 | 免費(fèi)
- 4智能門鎖原理圖
- 0.39 MB | 28次下載 | 免費(fèi)
- 5OAH0428最新規(guī)格書(中文)
- 2.52 MB | 15次下載 | 7 積分
- 6ST7789V2單芯片控制器/驅(qū)動(dòng)器英文手冊(cè)
- 3.07 MB | 9次下載 | 1 積分
- 7LTH7充電電路和鋰電池升壓5V輸出電路原理圖
- 0.04 MB | 7次下載 | 免費(fèi)
- 8TPS54202H降壓轉(zhuǎn)換器評(píng)估模塊用戶指南
- 1.02MB | 7次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935119次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183334次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73807次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65987次下載 | 10 積分
評(píng)論
查看更多