我是靠谱客的博主 淡定小白菜,最近开发中收集的这篇文章主要介绍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错误问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复