原子哥的串口IAP实验这段代码我移植到USB IAP实验上,,判断是否为0X08XXXXXX.这个判断语句始终判断是错误,而串口IAP实验判断是正确的的if(((*(vu32*)(0X20001000+4))&0xFF000000)==0x08000000)//判断是否为0X08XXXXXX.这条语句按说都应该是正确的啊
if(key==WKUP_PRES) //WK_UP按键按下
{
printf("开始更新固件...\r\n");
LCD_ShowString(30,210,200,16,16,"Copying APP2FLASH...");
if(((*(vu32*)(0X20001000+4))&0xFF000000)==0x08000000)//判断是否为0X08XXXXXX.
{
iap_write_appbin(FLASH_APP1_ADDR,fatbuf,120*1204);//更新FLASH代码
LCD_ShowString(30,210,200,16,16,"Copy APP Successed!!");
printf("固件更新完成!\r\n");
}else
{
LCD_ShowString(30,210,200,16,16,"Illegal FLASH APP! ");
printf("非FLASH应用程序!\r\n");
}
clearflag=7;//标志更新了显示,并且设置7*300ms后清除显示
}if(key==WKUP_PRES) //WK_UP按键按下
{
printf("开始更新固件...\r\n");
LCD_ShowString(30,210,200,16,16,"Copying APP2FLASH...");
if(((*(vu32*)(0X20001000+4))&0xFF000000)==0x08000000)//判断是否为0X08XXXXXX.
{
iap_write_appbin(FLASH_APP1_ADDR,fatbuf,120*1204);//更新FLASH代码
LCD_ShowString(30,210,200,16,16,"Copy APP Successed!!");
printf("固件更新完成!\r\n");
}else
{
LCD_ShowString(30,210,200,16,16,"Illegal FLASH APP! ");
printf("非FLASH应用程序!\r\n");
}
clearflag=7;//标志更新了显示,并且设置7*300ms后清除显示
}
|