我是靠谱客的博主 淡定小白菜,最近开发中收集的这篇文章主要介绍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.运行程序,代码正常运行;

最后

以上就是淡定小白菜为你收集整理的KEIL中 使用正点原子STMFLASH_Write出现HardFault_Handler错误问题的全部内容,希望文章能够帮你解决KEIL中 使用正点原子STMFLASH_Write出现HardFault_Handler错误问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部