打印
[技术问答]

word读取Flash特定地址,发生hardfault_handle

[复制链接]
1030|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
junzheng|  楼主 | 2022-8-2 15:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ar, AN
在进行Flash读操作时,有个特定地址0x3f022,0x3f023,

uint8_t a1 = *((unsigned char *)0x3f022);
uint8_t a2 = *((unsigned char *)0x3f023);
uint16_t a3 = *((unsigned short int *)0x3f022);
uint32_t a4 = *((unsigned int *)0x3f022);      //前三句都正常,这句话引发 hardfault_handle,但别的地址读取都没问题啊。


使用特权

评论回复
沙发
wubangmi| | 2022-8-2 16:41 | 只看该作者
正常情况下,unsigned int类型不是应该是4的倍数的地址吗?你怎么从中间地址读?

使用特权

评论回复
板凳
chenjun89| | 2022-8-3 21:25 | 只看该作者
数据类型不匹配

使用特权

评论回复
地板
martinhu| | 2022-8-4 10:25 | 只看该作者
uint32_t a4 = *((unsigned int *)0x3f022);   读word的话,需要地址word对齐,地址结尾肯定是0、4、8、C……不然就是hard fault……

使用特权

评论回复
5
littlelida| | 2022-8-14 14:24 | 只看该作者
那就是写错地址了?

使用特权

评论回复
6
duo点| | 2022-8-18 11:20 | 只看该作者
数据类型不匹配吗

使用特权

评论回复
7
junzheng|  楼主 | 2022-8-19 18:12 | 只看该作者
谢谢大家!问题解决了,是对齐问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

71

帖子

2

粉丝