定义了一个8bit型数组,强制转换为16bit指针后,STM32F030进HardFault
查看地址为单数:0x20000213
代码类似这样:
uint8_t tmpBuf[50];
uint16_t *tmpPoint = (uint16_t * )tmpBuf;
当tmpBuff的地址为单数时,操作tmpPoint就进HardFault。
然后将地址强制改为0x20000214,程序就正常了。
uint8_t tmpBuf[50] __attribute__((at(0x20000214))) ;
问题是不是STM32要求双字节变量必须偶数地址? |