正常优化体积,没问题。 但是调试发现有部分地方观察不到,于是关闭优化。
结果报硬件故障中断,调试发现是读FLASH的时候触发的。 简简单单几行代码,只读,没有写的操作,怎么会触发中断呢?
void Read_ConfigData(void) { ConfigInfo.iMaxVoltage = *(u32 *)(FLASH_POWERDATA_ADDR); ConfigInfo.iMaxCurrent = *(u32 *)(FLASH_POWERDATA_ADDR+0x04); ConfigInfo.iTime1 = *(u32 *)(FLASH_POWERDATA_ADDR+0x08); ConfigInfo.iTime2 = *(u32 *)(FLASH_POWERDATA_ADDR+0x0B); if(0xFFFF == ConfigInfo.iMaxVoltage) { InitPowerInfo(); } }