本人第一次做32的IAP升级,app中不使用ucos操作系统时app可以正常运行,当app使用操作系统后跑飞了,下面是我程序中的一关键代码,求大神帮我看下是哪里的问题! if(state==1)
{
if(((*(vu32*)(0X20001000+4))&0xFF000000)==0x08000000)//判断是否为0X08XXXXXX.
{
iap_write_appbin(FLASH_APP1_ADDR,IAPBuffer,RevDataNum);//更新FLASH代码
state=2;
}
}
if(state==2)
{
if(((*(vu32*)(FLASH_APP1_ADDR+4))&0xFF000000)==0x08000000)//判断是否为0X08XXXXXX.
{
iap_load_app(FLASH_APP1_ADDR);//执行FLASH APP代码
}
}
if(tick%5==0)//半秒钟
{
ARMLED=!ARMLED;
// IWDG_Feed();
}
if((tick%20==0)&&(flag_tick==0))//两秒钟
{
if(((*(vu32*)(FLASH_APP1_ADDR+4))&0xFF000000)==0x08000000)//判断是否为0X08XXXXXX.
{
Uart1_SendByte(0x23);
iap_load_app(FLASH_APP1_ADDR);//执行FLASH APP代码,FLASH_APP1_ADDR为0x08008000
}
Uart1_SendByte(0x24);
}
delay_ms(100);
tick++; |