国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

stm32進入硬件錯誤中斷hardfault的原因剖析以及如何定位(必看)

這篇具有很好參考價值的文章主要介紹了stm32進入硬件錯誤中斷hardfault的原因剖析以及如何定位(必看)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

指令集方面:arm一般高端處理器,比如cortex-a系列,都是32位的arm指令。而cortex-m0,1,3,4等低端處理器,也叫做單片機,為了增加代碼密度(同樣存儲器內(nèi)可以存更多指令),用的是thumb指令集(而且僅支持這個指令集),這個指令集大多數(shù)指令是16位的,少數(shù)是32位的。這就是為什么上面的調(diào)試圖中,看到指令都是兩個字節(jié),而有的是4個字節(jié)。比較老的arm7,arm9等處理器,支持thumb指令和arm指令,需要通過指令告訴處理器,顯式的進行指令轉(zhuǎn)換,這個因此需要編譯器提供支持。

注意:stm32f1(cortex-m3內(nèi)核)單片機,僅支持thumb指令,在blx rx跳轉(zhuǎn)指令執(zhí)行時,會堅持rx寄存器存的地址,的最低為是不是1,如果不是,那么stm32會認為我們企圖切換到arm指令,但是arm指令stm32不支持,因此會跳入hardfault硬件錯誤中斷。stm32進入硬件錯誤中斷時候,會在相應(yīng)的狀態(tài)指示寄存器里置為,用來提醒用戶,是什么問題導(dǎo)致的錯誤。

只有三種錯誤類型,但是都會進入產(chǎn)生硬件錯誤中斷。

HardFault錯誤

這個會在SCB->HFSR寄存器中通過位來標識產(chǎn)生的是什么錯誤,我們可以在進入了硬件錯誤中斷,查看該寄存器的位來知道發(fā)生的是什么錯誤類型。具體哪位是干嘛的,自己查查Cortex-m3與m4權(quán)威指南這本書,講得真心不錯。

1. MemManage錯誤:存儲器管理錯誤

存儲器訪問越權(quán),寫入MPU保護的只讀區(qū)域,壓棧錯誤等等。

會在SCB->CFSR寄存器第一個字節(jié)顯示

2.Bus總線錯誤

比如訪問了非法的存儲器位置等。

會在SCB->CFSR寄存器第二個字節(jié)顯示

3.Usage使用錯誤

比如非對齊訪問,試圖切換到arm指令狀態(tài)等,我上面說的就是這個錯誤。

會在SCB->CFSR寄存器高半字顯示

如果我們在keil mdk中進行調(diào)試,可以在HardFault函數(shù)處打斷點,進入后,菜單欄選擇Peripherals -> Core?Peripherals -> Fault?reportes窗口,看到各個錯誤寄存器的可視化信息顯示,如下圖:我這個錯誤就是由于rx = 20007800, blx rx, 地址rx中的地址最低為不為1,因此出現(xiàn)了使用錯誤,這個位表示我試圖切換到arm指令,因此產(chǎn)生了錯誤。

stm32進入硬件錯誤中斷hardfault的原因剖析以及如何定位(必看)

?文章來源地址http://www.zghlxwxcb.cn/news/detail-407370.html

到了這里,關(guān)于stm32進入硬件錯誤中斷hardfault的原因剖析以及如何定位(必看)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 解決STM32在延時時無法進入中斷的問題

    問題: 在使用zigbee模塊時,使用串口作為無線收發(fā)的載體,與stm32通信,使用DHT11作為簡單的受控源,出現(xiàn)了bug: 當在while(1)里使用delay函數(shù),或者使用DHT11_Read_Data函數(shù)時,程序無法進入串口接收中斷,無法使用遠程控制 其中的while函數(shù)為: 解決思路: 檢查接線之后,我首

    2024年02月12日
    瀏覽(15)
  • STM32 HAL庫 CAN雙機通信接收無法進入中斷、中斷沒有反應(yīng)的解決方法

    STM32 HAL庫 CAN雙機通信接收無法進入中斷、中斷沒有反應(yīng)的解決方法

    在調(diào)試HAL庫下的CAN雙機(雙F103ZET6)通信時,阻塞輪詢接收完全正常,但是中斷接收沒有反應(yīng)。翻看了GL的燒腦之路總結(jié)(一):Cubemx創(chuàng)建CAN通信工程,無法進入CAN中斷的原因這篇文章以后,核實自己的硬件電路沒有問題,于是對自己的工程文件進行整理,把 ①HAL_CAN_ConfigFi

    2024年02月04日
    瀏覽(27)
  • STM32 hal庫編程定時器清除中斷標志位,開啟定時器中斷會立即進入中斷的問題

    1、如果不清除中斷標志位,開啟定時器中斷的話,不能完成相應(yīng)的計時,會立即進入中斷。 2、如果在開啟定時器中斷前清除了中斷標志位,就會等待計時完成再出發(fā)中斷。 3、主要是針對單次計時使用,尤其是對第一次計時有要求的程序。

    2024年02月01日
    瀏覽(23)
  • STM32F407的CAN2無法進入can接收中斷的解決辦法

    STM32F407的CAN2無法進入can接收中斷的解決辦法

    這個問題困擾了我兩天,今天偶然看到一篇文章有講這個:STM32 CAN1 CAN2 不能同時工作,最后原因竟然是。。。。 看了之后恍然大悟。下面貼上我的初始化代碼: 主函數(shù)進行中斷優(yōu)先級分組和CAN初始化調(diào)用及使能 初始化代碼: 中斷服務(wù)函數(shù): 效果展示: ?CAN邏輯分析儀數(shù)據(jù)

    2024年02月13日
    瀏覽(28)
  • 【STM32】HardFault問題詳細分析及調(diào)試筆記

    【STM32】HardFault問題詳細分析及調(diào)試筆記

    目錄 1. 概述 2. 問題描述 3. 問題分析 4. 相關(guān)知識 4.1異常和中斷 4.2 中斷輸入與掛起行為 4.3 Cortex-M4處理器的寄存器簡介 4.4 ?C實現(xiàn)的異常處理 4.5 棧幀 4.6 異常返回值 4.7 異常流程 5. 問題定位 5.1 確定棧指針 5.2 確定LR的值 5.3 查詢C代碼位置 5.4 確定PSP棧 5.5 處理方法 6. 總結(jié) ??

    2023年04月15日
    瀏覽(29)
  • STM32-調(diào)用 vTaskStartScheduler API 后出現(xiàn) HardFault

    STM32-調(diào)用 vTaskStartScheduler API 后出現(xiàn) HardFault

    STM32 移植 FreeRTOS 后調(diào)用 vTaskStartScheduler() 后出現(xiàn) HardFault 異常。 原因分析: FreeRTOS 配置頭文件 FreeRTOSConfig.h 中與中斷有關(guān)的配置和通過系統(tǒng)接口 void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup) 設(shè)置的中斷分組沖突。 在 FreeRTOSConfig.h 中設(shè)置的中斷最低優(yōu)先級為 15 ,說明 可編程中

    2024年01月22日
    瀏覽(22)
  • stm32cube出現(xiàn)Hardfault的調(diào)試方法(emwin死機)

    stm32cube出現(xiàn)Hardfault的調(diào)試方法(emwin死機)

    在STM32芯片開發(fā)中,當程序運行時出現(xiàn)HardFault異常,通常是由于以下原因引起的: 程序中出現(xiàn)了無效的指令,比如指向不存在的內(nèi)存地址或未初始化的指針; 棧溢出,導(dǎo)致程序無法正常運行; 部分寄存器值異常,例如SP(棧指針)、PC(程序計數(shù)器)、LR(鏈接寄存器)等;

    2024年02月07日
    瀏覽(25)
  • STM32單片機的 Hard-Fault 硬件錯誤問題追蹤與分析

    STM32單片機的 Hard-Fault 硬件錯誤問題追蹤與分析

    目錄 1、了解STM32的寄存器組 1.1、Cortex-M3的通用寄存器組 1.1.1、通用目的寄存器 R0-R7 1.1.2、通用目的寄存器 R8-R12 1.1.3、R13 — 堆棧指針(SP) 1.1.4、R14 — 連接寄存器(LR) 1.1.5、R15 — 程序計數(shù)器(PC) 1.2、Cortex‐M3 的特殊功能寄存器 1.2.1、xPSR — 狀態(tài)寄存器 1.2.2、中斷屏蔽寄

    2024年02月13日
    瀏覽(22)
  • 從原因到解決方案,深入剖析網(wǎng)絡(luò)錯誤問題

    從原因到解決方案,深入剖析網(wǎng)絡(luò)錯誤問題

    當計算機系統(tǒng)中的客戶端(例如瀏覽器、應(yīng)用程序等)嘗試連接到遠程服務(wù)器時,網(wǎng)絡(luò)連接錯誤是一種常見的問題。這種錯誤可能會對用戶造成很大的困擾,因為它可能導(dǎo)致無法訪問網(wǎng)站或無法使用某些在線應(yīng)用程序。而網(wǎng)絡(luò)錯誤其實是我們?nèi)粘i_發(fā)中很難完全避免掉的一個

    2024年02月07日
    瀏覽(21)
  • (STM32基礎(chǔ))STM32常用中斷介紹

    (STM32基礎(chǔ))STM32常用中斷介紹

    主程序運行過程中,出現(xiàn)中斷請求,編譯器會保護主程序斷點現(xiàn)場,跳出優(yōu)先處理中斷,中斷程序運行完成后,跳回主程序繼續(xù)運行斷點后的主程序。 注意分清:中斷、中斷優(yōu)先級、中斷嵌套三個概念。 1、 中斷通道就是中斷源 ,STM32具體到某個型號不一定有68個中斷這么全

    2024年02月07日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包