在 stm32f10x_flash.icf 中设置ROM的起始结束地址
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = 0x08004000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__ = 0x08004000 ;
以上两行是用于给编译器看的,用于将代码生成可烧录文件后,代码存储位置偏移到相应的位置。
程序代码中需要执行以下代码行:
NVIC_SetVectorTable(NVIC_VectTab_FLASH,NVIC_VECTOR_TABLE_OFFSET);
此行代码用于程序中将中断向量表设置在偏移处,当发生中断时才可以找到中断向量处理函数。
所以需要修改宏 NVIC_VECTOR_TABLE_OFFSET 的值跟上面的偏移地址一致!