IAP 在STM32F103C8上的实现已经在[STM32F103C8在应用编程(IAP)介绍及实现]具体讲解了。
链接如下:
https://blog.csdn.net/tanzj123/article/details/113435586
但由于STM32F030C8与STM32F103C8在中断向量表上的设计差异,导致application上需要做修改。
原先在STM32F103C8的设置NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x2000);不能用了。需要使用下面方法实现
/* Enable the SYSCFG peripheral clock*/
RCC_APB2PeriphResetCmd(RCC_APB2Periph_SYSCFG, ENABLE);
// copy vector table from flash to ram
memcpy((void*)0x20000000, (void*)0x08002000, VECTOR_SIZE);
/* Remap SRAM at 0x00000000 */
SYSCFG_MemoryRemapConfig(SYSCFG_Memory