KEIL中 使用正点原子STMFLASH_Write出现HardFault_Handler错误问题

一、背景

1.MDK5.29

2.芯片:STM32F103RCT6

3.FLASH代码:正点原子代码

二、问题

1.移植以前使用过的FLASH读写代码,发现程序运行后出现HardFault_Handler;

三、分析

1.程序中已将其他代码全部屏蔽,只留下FLASH读写函数,但运行函数出现同样的错误;

2.定位到错误位置发现,是一个变量定义的位置;

3.出现HardFault_Handler问题,一般是越界和内存泄漏;

4.又想到出现段错误的地方没问题,但是造成这里定义变量出错的可能是之前哪里有问题;

5.所以我关注字符串相关变量;

6.发现为了将4KB的数据读取出来,定义了一个4KB大小的全局变量;同时突然想到新建的工程默认栈空间只有1KB大小;

7.所以猜测是不是,栈空间被占满,之后再申请栈空间导致了栈空间不够,内存越界造成HardFault_Handler;

四、解决

1.将栈空间定义为8KB;

2.运行程序,代码正常运行;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值