word读取Flash特定地址,发生hardfault_handle
在进行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,但别的地址读取都没问题啊。
正常情况下,unsigned int类型不是应该是4的倍数的地址吗?你怎么从中间地址读? 数据类型不匹配 uint32_t a4 = *((unsigned int *)0x3f022); 读word的话,需要地址word对齐,地址结尾肯定是0、4、8、C……不然就是hard fault…… 那就是写错地址了? 数据类型不匹配吗 谢谢大家!问题解决了,是对齐问题。
页:
[1]