我的项目分为2部分,一是IAP(0X8000000~0X8002000),这部分没有写NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0000),二是应用程序(0X8002000~0X8003FFF), 系统复位后执行IAP程序,首先检查是否需要升级,需要则抓取USER.BIN升级,不需要则跳到应用程序区,在应用程序里映射向量表,NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x2000);IAR的LINKER里FLASH起始地址也是从0X8002000开始的。本意是在应用程序区里如果收到IAP指令后调用软件复位指令NVIC_GenerateSystemReset产生复位回到IAP程序去执行升级,只是我用示波器看RESET脚没有复位产生。但是在IAP里面的同样软件复位指令却可以产生复位信号。请有做过的朋友指点下问题出在哪里? |