21ic问答首页 - 取全局变量地址时发生Bit位翻转
取全局变量地址时发生Bit位翻转
STM32F030C8T6裸机程序,取全局变量地址时发生Bit位翻转,正确的地址应为0x20000940,取回的地址有0x20002940、0x20008900、0x20400940等,都是一个bit错位,并且多次复现,程序跑几天几乎能稳定触发。目前软件方面排查了很久,没有找到溢出或者越界的痕迹
大概代码如下
UINT8* GetAddress(VOID)
{
return sAddress;
}
调用返回后访问时触发非法地址进hardfault,有没有大佬遇见过类似的问题


大概代码如下
UINT8* GetAddress(VOID)
{
return sAddress;
}
调用返回后访问时触发非法地址进hardfault,有没有大佬遇见过类似的问题




问答
赞0
评论
2026-05-26
赞0
评论
2026-05-24
赞0
然后就是升高一下主频看看概率是不是加大,甚至进入dataabort。
评论
2026-05-24
赞0
评论
2026-05-23
赞0
程序里有申请什么缓冲区用来保存数据吗?有的话,看下,把缓冲区改大一点试试;
然后在启动文件里面也可以把堆栈空间改大一些,试试.
评论
2026-05-22
赞0
评论
2026-05-21
赞0
评论
2026-05-21
SRAM
赞0
评论
2026-05-21
您需要登录后才可以回复 登录 | 注册