【debug】stm32 指针奇数地址问题导致HardFault

本文探讨了在STM32F407开发中遇到的奇数地址引发的HardFault问题,涉及字节对齐的重要性。作者通过实例和理论分析,解释了ARM对奇数地址访问的限制,并分享了解决方法——调整结构体对齐。

很久很久没有记录过debug了,今天有空就正好记录一下

嵌入式开发,stm32F407的MCU的开发板。

遇到如下问题:

变量的地址竟然为奇数!!!导致程序运行到写入该地址的数据时,发生HardFault!

程序运行到断点位置就会进入hardFault,如图所示

 

师傅告诉我:这个地址是奇数有问题啊!要注意字节对齐!!!

STM32出现硬件错误可能有以下原因:

        (1)数组越界操作;

        (2)内存溢出,访问越界;

        (3)堆栈溢出,程序跑飞;

        (4)中断处理错误;

首先疑问,为什么指针是奇数的操作(例如复制之类的),一操作就会HardFault呢?

参考链接:

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值