資料介紹
作者:dogsun88
一、進(jìn)入異常之前處理器可能的狀態(tài)有:
1、 handler
2、 線程,MSP
3、 線程,PSP
二、產(chǎn)生異常時(shí):
1、 有一個(gè)壓棧的過程,產(chǎn)生異常時(shí)使用PSP,就壓入到PSP中,產(chǎn)生異常時(shí)使用MSP,就壓入到MSP中
2、 會(huì)根據(jù)處理器的模式和使用的堆棧,設(shè)置LR的值(當(dāng)然設(shè)置完的LR的值再壓棧)
三、異常返回時(shí):
根據(jù)LR的值,判讀使用那個(gè)堆棧,然后再從相應(yīng)的堆棧中POP數(shù)據(jù)到寄存器。
舉例說明:
在利用OSStartHighRdy->OSPendSV->OSPendSV_nosave啟動(dòng)第一個(gè)線程時(shí),在異常進(jìn)入的時(shí)候,壓棧到MSP(不會(huì)影響PSP的內(nèi)容),在通過BX LR指令從異常返回之前,有一句ORR LR, LR, #0x04來設(shè)置LR的值,保證我們從異常返回時(shí)是從PSP中POP數(shù)據(jù)到寄存器里,而此時(shí)PSP的值是OSTCBHighRdy->OSTCBStkPtr,即任務(wù)創(chuàng)建時(shí)定義的堆棧數(shù)組,同時(shí)在OSTaskStkInit函數(shù)中對(duì)該任務(wù)數(shù)組初始化時(shí),要保證其組織結(jié)構(gòu)和異常產(chǎn)生時(shí)處理器自動(dòng)壓棧產(chǎn)生的棧的結(jié)構(gòu)相同。
四、棧中的內(nèi)容分析:
1、 變量
2、 調(diào)用函數(shù)時(shí),如果子函數(shù)比較復(fù)雜,會(huì)由編譯器自動(dòng)的壓入r4-r11, lr(壓入多少寄存器,由子函數(shù)的復(fù)雜程度決定的)
3、 異常保存,壓入棧的是r0-r3,r12,LR,PC,xSPR(硬件直接完成的)
4、 進(jìn)程切換,所有寄存器全部壓棧
由于異常死機(jī)了之后的具體操作:
產(chǎn)生異常時(shí),兩個(gè)值我們需要,一個(gè)是pc,一個(gè)是LR,通過LR找到棧, 再通過棧找到pc
1、 如果LR=0xFFFFFFF9說明產(chǎn)生異常的時(shí)候使用的是MSP,我們只需要讀出當(dāng)前sp的值,
sp += 0x1c;讀出的內(nèi)容就是產(chǎn)生異常時(shí)壓入棧的PC的值,這個(gè)值跟反匯編代碼對(duì)比,就能得到具體哪句話產(chǎn)生的異常。
2、 如果LR=0xFFFFFFFD明產(chǎn)生異常的時(shí)候使用的是PSP,我們需要讀出PSP的值,不要直接來讀sp的值,在keil集成開發(fā)環(huán)境中,調(diào)試時(shí)寄存器窗口有個(gè)Banked選項(xiàng),會(huì)給出當(dāng)前PSP的值,當(dāng)然也可以在異常處理中加入兩句話:
MRS R0,PSP
PUSH {R0}
我們就能在當(dāng)前MSP中得到,我們PSP的值了,之后操作和上面一樣,psp+=0x1c;讀出的內(nèi)容就是產(chǎn)生異常時(shí)壓入棧的PC的值,這個(gè)值跟反匯編代碼對(duì)比,就能得到具體哪句話產(chǎn)生的異常。
文章來源:(mbbeetchina)
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- Cortex-M3處理器內(nèi)核與基于Cortex-M3的MCU關(guān)系
- Cortex-M3工作模式、異常與中斷介紹資料下載
- ARM Cortex-M3 MCU 的 I2C DMA操作和中斷資料下載
- Cortex-M3與Cortex-M4對(duì)比資料下載
- Cortex-M3和Cortex-M4 Fault異常應(yīng)用之基礎(chǔ)知識(shí)資料下載
- Cortex-M3的異常和中斷資料下載
- 《ARM Cortex-M3權(quán)威指南》筆記資料下載
- ARM Cortex-M3/M4微控制器最大效率設(shè)計(jì)三秘訣資料下載
- ARM Cortex-M3系列GPIO口介紹資料下載
- ARM Cortex-M3內(nèi)核微控制器與ARM7的區(qū)別資料下載
- Cortex-M3(M0)匯編-啟動(dòng)代碼分析資料下載
- Cortex-M3 NVIC與中斷控制資料下載
- Cortex-M3內(nèi)核的ARM處理器的應(yīng)用資料說明 4次下載
- Cortex-M3的入門學(xué)習(xí)資料說明
- ARM Cortex-M3權(quán)威指南 48次下載
- 如何使用Ozone分析Cortex-M異常 853次閱讀
- 強(qiáng)大的Arm? Cortex?-M3內(nèi)核(下) 1285次閱讀
- Cortex-M3中斷優(yōu)先級(jí)的相關(guān)知識(shí) 2797次閱讀
- 分析ARM Cortex-M內(nèi)核復(fù)位啟動(dòng)過程 2477次閱讀
- 美信cortex-m3內(nèi)核芯片的啟動(dòng)過程及連接文件介紹 1607次閱讀
- 基于FPGA搭建ARM Cortex-M3 SoC軟核 2634次閱讀
- 如何定制一顆ARM Cortex-M3 SoC軟核 2292次閱讀
- 米爾科技ARM Cortex-M3教程指南 2872次閱讀
- 米爾科技NXP LPC1857 LPC1850 Cortex-M3開發(fā)板概述 4396次閱讀
- Cortex-M3處理器中斷和FreeRTOS中斷優(yōu)先級(jí)配置 7136次閱讀
- STM32的Cortex-M3中斷異常處理 8313次閱讀
- 基于ARM處理器的高效異常處理解決方案 1424次閱讀
- DesignStart Cortex-M3軟件開發(fā)網(wǎng)上課程 5863次閱讀
- ARM Cortex M3/M4微控制器最大效率設(shè)計(jì)三秘訣 3671次閱讀
- 采用ARM Cortex-M3的USB熱電偶溫度測(cè)量系統(tǒng)電路圖 3933次閱讀
下載排行
本周
- 1TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開關(guān)電源基礎(chǔ)知識(shí)
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 6基于FPGA的C8051F單片機(jī)開發(fā)板設(shè)計(jì)
- 0.70 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21548次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183278次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論