日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2025年05月20日(星期二)

正在發(fā)生

2018年05月20日 | STM32出現(xiàn)HardFault_Handler問題查找方法

發(fā)布者:WhisperingSoul 來源: eefocus關(guān)鍵字:STM32  HardFault_Handler  問題查找 手機(jī)看文章 掃描二維碼
隨時隨地手機(jī)看文章

STM32出現(xiàn)HardFault_Handler故障的原因主要有兩個方面:

1、內(nèi)存溢出或者訪問越界。這個需要自己寫程序的時候規(guī)范代碼,遇到了需要慢慢排查。

2、堆棧溢出。增加堆棧的大小。

 

出現(xiàn)問題時排查的方法:

發(fā)生異常之后可首先查看LR寄存器中的值,確定當(dāng)前使用堆棧為MSP或PSP,然后找到相應(yīng)堆棧的指針,并在內(nèi)存中查看相應(yīng)堆棧里的內(nèi)容。由于異常發(fā)生時,內(nèi)核將R0~R3、R12、LR、PC、XPRS 寄存器依次入棧,其中LR即為發(fā)生異常前PC將要執(zhí)行的下一條指令地址。

注意:寄存器均是32位,且STM32是小端模式。(參考Cortex-M3權(quán)威)

 

編寫問題代碼如下:

void StackFlow(void)
{
 int a[3],i;
 
 for(i=0; i<10000; i++)
 {
  a[i]=1;
 }
}

 void SystemInit(void)
{
  /* Reset the RCC clock configuration to the default reset state ------------*/
  /* Set HSION bit */
  RCC->CR |= (uint32_t)0x00000001;
 
 

  /* Reset CFGR register */
  RCC->CFGR = 0x00000000;

  /* Reset HSEON, CSSON and PLLON bits */
  RCC->CR &= (uint32_t)0xFEF6FFFF;

  /* Reset PLLCFGR register */
  RCC->PLLCFGR = 0x24003010;
 
 StackFlow();

  /* Reset HSEBYP bit */
  RCC->CR &= (uint32_t)0xFFFBFFFF;

 。。。。。。。。。。。。。。

}

DEBUG如下圖

SP值為0x20008560,查看堆棧里面的值依次為R0~R3、R12、LR、PC、XPRS, 例如R0(10 27 00 00),  顯然堆棧后第21個字節(jié)到24字節(jié)即為LR,該地址0x08001FFD即為異常前PC將要執(zhí)行的下一條指令地址(即StackFlow()后面的語句處 RCC->CR &= (uint32_t)0xFFFBFFFF)

 

 

另一種方法:

默認(rèn)的HardFault_Handler處理方法不是B .這樣的死循環(huán)么?樓主將它改成BX LR直接返回的形式。然后在這條語句打個斷點,一旦在斷點中停下來,說明出錯了,然后再返回,就可以返回到出錯的位置的下一條語句那兒

__asm void wait()
{
      BX lr
}

 

void HardFault_Handler(void)
{
    /* Go to infinite loop when Hard Fault exception occurs */
       wait();
}


關(guān)鍵字:STM32  HardFault_Handler  問題查找 引用地址:STM32出現(xiàn)HardFault_Handler問題查找方法

上一篇:初學(xué)STM32遇到的一些問題
下一篇:ARM處理器啟動流程———S3C2440、S3C6410、S5PV210

推薦閱讀

今天的大事件,是”如何看待空姐搭乘滴滴順風(fēng)車被殺害一事?此類事件應(yīng)如何避免?“,這個核心問題是司機(jī)與乘客的雙方關(guān)系的問題。這個事情本身與之前的黑車司機(jī)殺害乘客是相似的,區(qū)別是滴滴平臺讓人產(chǎn)生信任,這事情就從本質(zhì)上來審視出行服務(wù)運營商需要具備的核心競爭力,是否能保證乘客和車主的雙方的安全。?從某種程度上來看,在全國層面嚴(yán)控司機(jī)的信...
美國最大的共同基金管理公司之一T. Rowe Price(中文或譯為普信集團(tuán))一直是除馬斯克之外的特斯拉最大股東。其最新發(fā)布的13F報告證實了一個月前的媒體報道,即這一知名機(jī)構(gòu)投資者、特斯拉背后的大金主正在大舉減持特斯拉股份。 美國證券交易委員會SEC的13F季度持倉文件顯示,截至2019年3月31日的第一季度內(nèi),T. Rowe Price持有特斯拉普通股167.41萬股...
按照國嵌課程在Linux系統(tǒng)下使用dnw軟件燒寫系統(tǒng)失敗,開機(jī)白屏。燒寫步驟:1.保持S2開關(guān)撥至nor flash開關(guān)處,連接串口線打開串口工具以便觀察運行情況,打開電源開關(guān)。2.使用jlink,配置好工程文件,并將supervivi-128M.bin燒寫進(jìn)nor flash中,記得Target->Program前先Target->Erase。常見錯誤:開發(fā)板上電后串口無輸出,檢查少寫完系統(tǒng)安裝輔助軟件后...
智能機(jī)器人基礎(chǔ)設(shè)施產(chǎn)品公司梅卡曼德日前完成美團(tuán)領(lǐng)投的數(shù)億元C輪融資。老股東紅杉資本中國基金和源碼資本跟投,泰合資本擔(dān)任獨家財務(wù)顧問。梅卡曼德在過去十二個月內(nèi)已獲得三次大額融資,并成為全球AI+工業(yè)機(jī)器人領(lǐng)域融資額最高的公司之一。

史海拾趣

小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved