当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]HardFault_Handler问题查找方法

 STM32出现HardFault_Handler故障的原因主要有两个方面:

1、内存溢出或者访问越界。这个需要自己写程序的时候规范代码,遇到了需要慢慢排查。

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

出现问题时排查的方法:

发生异常之后可首先查看LR寄存器中的值,确定当前使用堆栈为MSP或PSP,然后找到相应堆栈的指针,并在内存中查看相应堆栈里的内容。由于异常发生时,内核将R0~R3、R12、Return address、PSR、LR寄存器依次入栈,其中Return address即为发生异常前PC将要执行的下一条指令地址。

注意:寄存器均是32位,且STM32是小端模式。(参考Cortex-M3权威)

编写问题代码如下:

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、Return address、PSR、LR, 例如R0(10 27 00 00), 显然堆栈后第21个字节到24字节即为Return address,该地址0x08001FFD即为异常前PC将要执行的下一条指令地址(即StackFlow()后面的语句处 RCC->CR &= (uint32_t)0xFFFBFFFF)

另一种方法:

默认的HardFault_Handler处理方法不是B .这样的死循环么?楼主将它改成BX LR直接返回的形式。然后在这条语句打个断点,一旦在断点中停下来,说明出错了,然后再返回,就可以返回到出错的位置的下一条语句那儿

__asm void wait()

{

BX lr

}

void HardFault_Handler(void)

{

/* Go to infinite loop when Hard Fault exception occurs */

wait();

}

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

-2025年智慧城市博览会将以史上最大规模召开,呼吁城市成为变革推动者 西班牙巴塞罗那 2025年7月4日 /美通社/ -- 由巴塞罗那会展中心(Fira de Barc...

关键字: 智慧城市 CE RC AI

上海 2025年5月26日 /美通社/ -- 5月26日,国际独立第三方检测、检验和认证机构德国莱茵TÜV大中华区(简称"TÜV莱茵"...

关键字: 数字化 RC 供应链管理 中国制造

旧金山2025年2月6日 /美通社/ -- 基于深度学习的领先智能广告平台MediaGo宣布获得TrustArc的2025年《通用数据保护条例》(GDPR)合规认证。这一权威的第三方认证体现了MediaGo对数据安全保护...

关键字: MEDIA GO RC TRUST

第二子代MRCD和MDB最高支持12800MT/s速率,较第一子代产品提升45% 上海2025年1月24日 /美通社/ -- 澜起科技今日宣布,其最新研发的第二子代多路复用寄存时钟驱动器(MRCD)和第二子代多路复用数...

关键字: DDR RC CD MT

上海2024年11月5日 /美通社/ -- 保点 (Checkpoint Systems,以下简称Checkpoint) 是高度垂直集成的RFID解决方案领导者,也是业内能够提供最全面的RFID标签的供货商之一。随着Im...

关键字: RFID标签 RC 系列芯片 POINT

上海2024年10月8日 /美通社/ -- 2024年9月24日至25日,全球领先的汽车涂料供应商PPG受邀参加了在上海举行的SURCAR亚洲大会。会议期间,PPG与国内外各大汽车制造商、行业专家进行了深入的交流,共同探...

关键字: 汽车 RC PRIME 奇瑞

北京2024年9月3日 /美通社/ -- 近日,中共中央、国务院发布了《关于加快经济社会发展全面绿色转型的意见》,这是中央层面首次对加快经济社会发展全面绿色转型进行系统部署。其中,《意见》对交通运输领域的绿色转型提出了明...

关键字: POWER 新能源汽车 MDASH RC

中国深圳2024年8月27日 /美通社/ -- 深圳市联代科技有限公司(NASDAQ: WTO)(以下简称"联代科技"或"该公司")欣然宣布与战略合作伙伴Ehud Baron博士合作开发一款核心连续血压测量技术系统Cir...

关键字: 血压 测量技术 RC TI

深圳2024年8月21日 /美通社/ -- 今年4月在上海圆满落幕的"CHINAPLAS 2024 国际橡塑展",以无限的创新魔力书写了璀璨的篇章。如同一艘满载商机的巨轮,展会将乘风破浪,再度驶向充满活力的粤港澳大湾区。...

关键字: CHINA CE RC COM

北京2024年8月15日 /美通社/ -- 日前,杭州来布科技有限公司(以下简称"来布科技")数保保软件V1.0与浪潮信息服务器操作系统云峦KeyarchOS V5完成浪潮信息澎湃技术认证。经联合测试...

关键字: 软件 RC OS 测试
关闭