如题,试验步骤如下:
1、直接烧录APP (USB能够正常枚举)
2、增加IAP(IAP程序只简化成跳转到APP),按复位键,USB能够枚举出来,如果拔掉USB在插入,无法枚举(显示无法识别的设备)
IAP程序如下:
int main(void)
{
int i, j;
protocol.ack_rep_cnt = 0;
protocol.tx_len = 0;
protocol.rec_2k_len = 0;
// if(!NeedUpdate() && (((*(__IO uint32_t*)APPCODE_ADDR) & 0x2FFF0000 ) == 0x20000000) )
if(1)
{
// if (((*(__IO uint32_t*)APPCODE_ADDR) & 0x2FFF0000 ) == 0x20000000)
{ /* Jump to user application */
JumpAddress = *(__IO uint32_t*) (APPCODE_ADDR+4);
Jump_To_Application = (pFunction) JumpAddress;
/* Initialize user application's Stack Pointer */
__set_MSP(*(__IO uint32_t*) APPCODE_ADDR);
Jump_To_Application();
}
}
APP主程序如下:
int main(void)
{
int i, j;
Set_USBClock();
module_voltage_init();
Set_System();
delay_x_ms(500);
USB_Init();
if (debug_printf)
{
uart_init(115200);
}
SPI_DMA_Init();
NVIC_Config();
中断地址设置都OK,请大伙帮我分析,是什么原因,我怀疑是不是APP部分环境没有初始化,谢谢各位! |