2019-07-21 04:45发布
ZDawn 发表于 2019-3-5 12:05 是GD32的问题,在ST上使用字类型指针指向一个 不是4倍数的地址时候(比如0x07),MCU是会分两次存取完成的 ...
最多设置5个标签!
uint32_t *p = (uint32_t *)&a[0]; -----(1
uint16_t *p = (uint16_t *)&a[0]; -------(2
a 在1)的情况下要4字节对齐, 在2)的情况下要2字节对齐
这跟ST或GD 无关
只要你把a放在地址最后一位是7, temp = *p; 就会触发HardFault_Handler异常, 不管是ST还是GD
如果说ST没事, 那你查看一下a这时的地址吧, 看它还是不是尾数是7
不要把美丽的误会当成经验
一周热门 更多>