一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開發(fā)>ARM cortex-M3 異常處理分析資料下載

ARM cortex-M3 異常處理分析資料下載

2021-04-24 | pdf | 64.67KB | 次下載 | 2積分

資料介紹

作者:dogsun88 一、進入異常之前處理器可能的狀態(tài)有: 1、 handler 2、 線程,MSP 3、 線程,PSP 二、產(chǎn)生異常時: 1、 有一個壓棧的過程,產(chǎn)生異常時使用PSP,就壓入到PSP中,產(chǎn)生異常時使用MSP,就壓入到MSP中 2、 會根據(jù)處理器的模式和使用的堆棧,設(shè)置LR的值(當(dāng)然設(shè)置完的LR的值再壓棧) 三、異常返回時: 根據(jù)LR的值,判讀使用那個堆棧,然后再從相應(yīng)的堆棧中POP數(shù)據(jù)到寄存器。 舉例說明: 在利用OSStartHighRdy->OSPendSV->OSPendSV_nosave啟動第一個線程時,在異常進入的時候,壓棧到MSP(不會影響PSP的內(nèi)容),在通過BX LR指令從異常返回之前,有一句ORR LR, LR, #0x04來設(shè)置LR的值,保證我們從異常返回時是從PSP中POP數(shù)據(jù)到寄存器里,而此時PSP的值是OSTCBHighRdy->OSTCBStkPtr,即任務(wù)創(chuàng)建時定義的堆棧數(shù)組,同時在OSTaskStkInit函數(shù)中對該任務(wù)數(shù)組初始化時,要保證其組織結(jié)構(gòu)和異常產(chǎn)生時處理器自動壓棧產(chǎn)生的棧的結(jié)構(gòu)相同。 四、棧中的內(nèi)容分析: 1、 變量 2、 調(diào)用函數(shù)時,如果子函數(shù)比較復(fù)雜,會由編譯器自動的壓入r4-r11, lr(壓入多少寄存器,由子函數(shù)的復(fù)雜程度決定的) 3、 異常保存,壓入棧的是r0-r3,r12,LR,PC,xSPR(硬件直接完成的) 4、 進程切換,所有寄存器全部壓棧 由于異常死機了之后的具體操作: 產(chǎn)生異常時,兩個值我們需要,一個是pc,一個是LR,通過LR找到棧, 再通過棧找到pc 1、 如果LR=0xFFFFFFF9說明產(chǎn)生異常的時候使用的是MSP,我們只需要讀出當(dāng)前sp的值, sp += 0x1c;讀出的內(nèi)容就是產(chǎn)生異常時壓入棧的PC的值,這個值跟反匯編代碼對比,就能得到具體哪句話產(chǎn)生的異常。 2、 如果LR=0xFFFFFFFD明產(chǎn)生異常的時候使用的是PSP,我們需要讀出PSP的值,不要直接來讀sp的值,在keil集成開發(fā)環(huán)境中,調(diào)試時寄存器窗口有個Banked選項,會給出當(dāng)前PSP的值,當(dāng)然也可以在異常處理中加入兩句話: MRS R0,PSP PUSH {R0} 我們就能在當(dāng)前MSP中得到,我們PSP的值了,之后操作和上面一樣,psp+=0x1c;讀出的內(nèi)容就是產(chǎn)生異常時壓入棧的PC的值,這個值跟反匯編代碼對比,就能得到具體哪句話產(chǎn)生的異常。 文章來源:(mbbeetchina)
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1GD100PIX120C6SNA規(guī)格書
  2. 0.98 MB   |  3次下載  |  免費
  3. 2一款入耳式耳機的仿真與分析
  4. 0.44 MB   |  2次下載  |  免費
  5. 3Eurotherm TKS Temperature 用戶手冊
  6. 1.46 MB  |  2次下載  |  免費
  7. 4人形機器人電機驅(qū)動和傳感報告
  8. 4.27 MB   |  2次下載  |  免費
  9. 5無線系統(tǒng)中天線和RF元件電磁建模
  10. 7.48 MB   |  1次下載  |  4 積分
  11. 6Multisim模擬電路仿真教程
  12. 1.93 MB   |  1次下載  |  3 積分
  13. 7DMP300C1型微機變壓器保護測控裝置技術(shù)說明書
  14. 4.11 MB   |  次下載  |  10 積分
  15. 8用MT3540芯片設(shè)計BOOST電路 1(可下載)
  16. 445.66 KB  |  次下載  |  免費

本月

  1. 1晶體三極管的電流放大作用詳細說明
  2. 0.77 MB   |  32次下載  |  2 積分
  3. 2Python從入門到精通背記手冊
  4. 18.77 MB   |  27次下載  |  1 積分
  5. 3雙極型三極管放大電路的三種基本組態(tài)的學(xué)習(xí)課件免費下載
  6. 4.03 MB   |  25次下載  |  1 積分
  7. 4AIWA HS-J303 MKⅡ維修手冊
  8. 22.47 MB   |  23次下載  |  10 積分
  9. 5多級放大電路的學(xué)習(xí)課件免費下載
  10. 1.81 MB   |  21次下載  |  2 積分
  11. 6九陽豆?jié){機高清原理圖
  12. 2.47 MB   |  20次下載  |  1 積分
  13. 7AIWA HS-J202/HS-J202M/HS-J800維修手冊
  14. 13.60 MB   |  15次下載  |  10 積分
  15. 81875功放原理圖
  16. 0.04 MB   |  11次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
  4. 1.48MB  |  420063次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191382次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183337次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81585次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73814次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分