那曲檬骨新材料有限公司

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開發(fā)>Cortex-M3和Cortex-M4 Fault異常應(yīng)用之基礎(chǔ)知識(shí)資料下載

Cortex-M3和Cortex-M4 Fault異常應(yīng)用之基礎(chǔ)知識(shí)資料下載

2021-04-23 | pdf | 154.17KB | 次下載 | 2積分

資料介紹

1、摘要 Cortex-M內(nèi)核實(shí)現(xiàn)了一個(gè)高效異常處理模塊,可以捕獲非法內(nèi)存訪問和數(shù)個(gè)程序錯(cuò)誤條件。本應(yīng)用筆記從程序員角度描述Cortex-M Fault異常,并且講述在軟件開發(fā)周期中的Fault用法。 2、簡(jiǎn)介 Cortex-M3(以下簡(jiǎn)稱CM3)和Cortex-M4(以下簡(jiǎn)稱CM4)內(nèi)核的Fault異常可以捕獲非法內(nèi)存方法和非法編程行為。Fault異常能夠檢測(cè)到以下情況: 總線Fault:在取址、數(shù)據(jù)讀/寫、取中斷向量、進(jìn)入/退出中斷時(shí)寄存器堆棧操作(入棧/出棧)時(shí)檢測(cè)到內(nèi)存訪問錯(cuò)誤。 存儲(chǔ)器管理Fault:檢測(cè)到內(nèi)存訪問違反了MPU定義的區(qū)域。 用法Fault:檢測(cè)到未定義的指令異常,未對(duì)齊的多重加載/存儲(chǔ)內(nèi)存訪問。如果使能相應(yīng)控制位,還可以檢測(cè)出除數(shù)為零以及其他未對(duì)齊的內(nèi)存訪問。 硬Fault:如果上面的總線Fault、存儲(chǔ)器管理Fault、用法Fault的處理程序不能被執(zhí)行(例如禁能了總線Fault、存儲(chǔ)器管理Fault、用法Fault異常或者在這些異常處理程序執(zhí)行過程中又出現(xiàn)了Fault)則觸發(fā)硬Fault。 本應(yīng)用筆記描述CM3和CM4的Fault異常用法。系統(tǒng)控制寄存器組中的寄存器可以控制Fault異常或者提供引發(fā)異常的原因信息。 更深入的文檔 完整的異常描述見《Cortex - M3 Technical Reference Manual》或者《Cortex -M4 Technical Reference Manual》,這兩本參考手冊(cè)都可以在中找到。 另一個(gè)很好的參考書是由Joseph Yiu編寫的《The Definitive Guide to the ARM Cortex-M3》 (這本書有中文版:宋巖譯的《ARM Cortex-M3權(quán)威指南》)。 3、Cortex-M Fault異常和寄存器 每個(gè)符合CMSIS規(guī)范的編譯器所提供的啟動(dòng)文件(Startup_device)都會(huì)定義好設(shè)備所有的異常和中斷向量。這些向量表定義了異常或中斷處理程序的入口地址。下表給出了一個(gè)典型的向量表,F(xiàn)ault異常向量用藍(lán)色標(biāo)注。 : : __Vectors DCD __initial_sp ; 棧頂 DCD Reset_Handler ; 復(fù)位處理程序入口 DCD NMI_Handler ; NMI 處理程序入口 DCD HardFaul t_Handler ; 硬Fault處理程序入口 DCD MemManage_Handler ; 存儲(chǔ)器管理處理程序入口 DCD BusFault_Handler ; 總線Fault 處理程序入口 DCD UsageFault_Handler ; 用法 Fault 處理程序入口 DCD 0 ; 保留 : : 通常總是使能硬Fault異常的,硬Fault異常具有固定的優(yōu)先級(jí),并且優(yōu)先級(jí)高于其它Fault異常以及???斷,但低于NMI。硬Fault異常處理程序在以下情況下會(huì)被執(zhí)行:其它非硬Fault異常(非硬Fault異常是指總線、存儲(chǔ)器管理和用法Fault 異常,下同。)被禁能,并且這些Fault異常被觸發(fā);在執(zhí)行一個(gè)非硬Fault異常處理程序???又產(chǎn)生非硬Fault異常。 所有非硬Fault具有可編程的優(yōu)先級(jí)。當(dāng)Cortex-M內(nèi)核復(fù)位后,這些非硬Fault被禁能,你可以在應(yīng)用軟件中通過設(shè)置“系統(tǒng)Handler控制及狀態(tài)寄存器(SHCSR)”來(lái)使能非硬Fault異常。這個(gè)寄存器屬于系統(tǒng)控制模寄存器組(SCB) 3.1 Fault異常的控制寄存器 在這里有必要介紹一下系統(tǒng)控制模塊寄存器組(SCB)的成員,這個(gè)寄存器組的定義可以在core_cm3.h文件中,該文件屬于CMSIS Cortex-M3 內(nèi)核外設(shè)接口抽象層的一部分(關(guān)于不清楚CMSIS的,可以自行查找資料)。定義如下: (1)定義系統(tǒng)控制寄存器組結(jié)構(gòu)體 /** @brief System Control Block (SCB) register structure definition */ typedef struct { __I uint32_t CPUID; /*! __IO uint32_t ICSR; /*! __IO uint32_t VTOR; /*! __IO uint32_t AIRCR; /*! __IO uint32_t SCR; /*! __IO uint32_t CCR; /*! __IO uint8_t SHP[12]; /*! __IO uint32_t SHCSR; /*! __IO uint32_t CFSR; /*! __IO uint32_t HFSR; /*! __IO uint32_t DFSR; /*! __IO uint32_t MMFAR; /*! __IO uint32_t BFAR; /*! __IO uint32_t AFSR; /*! __I uint32_t PFR[2]; /*! __I uint32_t DFR; /*! __I uint32_t ADR; /*! __I uint32_t MMFR[4]; /*! __I uint32_t ISAR[5]; /*! } SCB_Type; (2) 定義系統(tǒng)控制寄存器組物理空間基地址 (3) 定義指向系統(tǒng)控制寄存器組的指針 #define SCB ((SCB_Type *)SCB_BASE) /*! 通過以上三步,我們就可以使用結(jié)構(gòu)體指針SCB來(lái)訪問系統(tǒng)控制寄存器組的寄存器了,比如給系統(tǒng)控制寄存器SCR賦值:SCB->SCR=0xFF; SCB->CCR寄存器控制除數(shù)為零和未對(duì)齊內(nèi)存訪問是否觸發(fā)用法Fault。 SCB->SHCSR寄存器可用來(lái)使能非硬Fault異常。如果一個(gè)非硬Fault異常被禁能并且相關(guān)Fault發(fā)生,這時(shí)異常會(huì)升級(jí)為硬Fault。SCB->SHP寄存器組控制異常的優(yōu)先級(jí)。 Fault異常控制寄存器列表: 地址/訪問 寄存器 復(fù)位值 描述
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1AN158 GD32VW553 Wi-Fi開發(fā)指南
  2. 1.51MB   |  2次下載  |  免費(fèi)
  3. 2嵌入式軟件開發(fā)符合ISO 26262 功能安全標(biāo)準(zhǔn)
  4. 1.61 MB  |  1次下載  |  免費(fèi)
  5. 3AN148 GD32VW553射頻硬件開發(fā)指南
  6. 2.07MB   |  1次下載  |  免費(fèi)
  7. 4PZT驅(qū)動(dòng)開關(guān)電路
  8. 0.09 MB   |  1次下載  |  免費(fèi)
  9. 5模擬電路仿真實(shí)現(xiàn)
  10. 2.94MB   |  1次下載  |  免費(fèi)
  11. 6PCB繪制基礎(chǔ)知識(shí)
  12. 2.44MB   |  1次下載  |  免費(fèi)
  13. 7EE-38:ADSP-2181 IDMA端口-周期竊取時(shí)序
  14. 75.0KB   |  次下載  |  免費(fèi)
  15. 8EE-82:使用ADSP-2181 DSP的IO空間對(duì)另一個(gè)ADSP-2181進(jìn)行IDMA引導(dǎo)
  16. 86.86KB   |  次下載  |  免費(fèi)

本月

  1. 1ADI高性能電源管理解決方案
  2. 2.43 MB   |  452次下載  |  免費(fèi)
  3. 2免費(fèi)開源CC3D飛控資料(電路圖&PCB源文件、BOM、
  4. 5.67 MB   |  139次下載  |  1 積分
  5. 3基于STM32單片機(jī)智能手環(huán)心率計(jì)步器體溫顯示設(shè)計(jì)
  6. 0.10 MB   |  132次下載  |  免費(fèi)
  7. 4美的電磁爐維修手冊(cè)大全
  8. 1.56 MB   |  24次下載  |  5 積分
  9. 5如何正確測(cè)試電源的紋波
  10. 0.36 MB   |  19次下載  |  免費(fèi)
  11. 6感應(yīng)筆電路圖
  12. 0.06 MB   |  10次下載  |  免費(fèi)
  13. 7LZC3106G高性能諧振控制器中文手冊(cè)
  14. 1.29 MB   |  9次下載  |  1 積分
  15. 8萬(wàn)用表UT58A原理圖
  16. 0.09 MB   |  9次下載  |  5 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935121次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420062次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233088次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73810次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分
百家乐官网大小点桌子| 百家乐隔一数打法| 百家乐专业赌| 湖北省| 百家乐官网娱乐真钱游戏| 百家乐推锅| 亲朋棋牌手机版下载| 百家乐官网园鼎丰娱乐城| 澳门百家乐官网游戏官网| 大发888 casino exe| 百家乐官网平台开户哪里优惠多| 玩百家乐五湖四海娱乐城| 网上娱乐城老虎机| 百家乐官网只打闲打法| 新澳门百家乐的玩法技巧和规则| 百家乐官网一代龙虎机| 百家乐桌手机套| 宁武县| 百家乐1个人| 新宝百家乐官网网址| 百家乐翻天快播粤语| 蓝盾网上娱乐| 做生意如何风水| 机率游戏| 属马的和属猴的在一起做生意好吗| 乐透乐博彩论坛| 微信百家乐官网群规则大全| 德州扑克加注规则| 利高百家乐官网的玩法技巧和规则 | 百家乐在线娱乐网| 百家乐官网免費游戏| 百家乐赌场网| 百家乐官网娱乐官方网| 百家乐娱乐网真钱游戏| 澳门百家乐官网网上| 威尼斯人娱乐开户| 百家乐官网赌场娱乐网规则| qq德州扑克怎么玩| 百家乐官网缩水软件| 陵水| 真人百家乐的玩法技巧和规则|