免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
IAR 出現(xiàn)HardFault_Handler的解決策略

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

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

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

 

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

1、發(fā)生異常之后可首先查看LR寄存器中的值,確定當(dāng)前使用堆棧為MSP或PSP,然后找到相應(yīng)堆棧的指針,并在內(nèi)存中查看相應(yīng)堆棧里的內(nèi)容。由于異常發(fā)生時(shí),內(nèi)核將R0~R3、R12、Return address、PSR、LR寄存器依次入棧,其中Return address即為發(fā)生異常前PC將要執(zhí)行的下一條指令地址,因此在堆棧中反數(shù)第三個(gè)字即為出錯(cuò)位置。

2、默認(rèn)的HardFault_Handler處理方法是B .將它改成BX LR直接返回的形式。然后在這條語(yǔ)句打個(gè)斷點(diǎn),一旦在斷點(diǎn)中停下來(lái),說(shuō)明出錯(cuò)了,然后再返回,就可以返回到出錯(cuò)的位置的下一條語(yǔ)句那兒。
這個(gè)有時(shí)候可能需要在反匯編模式下調(diào)試,因?yàn)榭梢允浅绦蚺茱w一會(huì)兒才出現(xiàn)HardFault_Handler。

 

3、還是將中斷函數(shù)修改,打印中斷時(shí)的一些信息:

HardFault_Hander()定義如下:

void HardFault_Handler(void)
{
  uint32_t r_sp ;

  r_sp = __get_PSP(); //獲取SP的值
  PERROR(ERROR,Memory Access Error!);
  Panic(r_sp);
 
  while (1);
}

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
stm32 HardFault_Handler調(diào)試及問(wèn)題查找方法
stm32死機(jī)問(wèn)題的處理
記一次STM32中HardFault問(wèn)題的調(diào)試解決(INVPC, LR 0xFFFFFFF5)
HardFault
CmBacktrace首頁(yè)、文檔和下載
MCU HardFault問(wèn)題查找和破解方法
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服