IAP中设置的app起始地址为0x8002000,现在做app程序,搜索了网上相关的说明,基本都说需要设置下面3个地方:
1、需要设置.icf文件
define symbol __ICFEDIT_intvec_start__ = 0x08002000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__ = 0x08002000;
define symbol __ICFEDIT_region_ROM_end__ = 0x0807FFFF;
2、需要在app的main中设置
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x2000);
3、需要在stm32f10x_nvic.h中设置
#define NVIC_VectTab_FLASH ((u32)0x08002000)
-------------------------------------------------------------------------------------------------------------------------------------------
也有人说2、3其实是一样,不能同时设置
设置2后,3应该为0x8000000
设置3后,2应该为NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
我单独设置2和3后编译了一下,如图:
前4个字节都是跳转到复位向量地址,从4个字节后面开始数据就不一样了,
这个是为什么,怎样做是正确的?
|