新手入门
- 积分
- 11
- 金钱
- 11
- 注册时间
- 2020-10-8
- 在线时间
- 4 小时
|
3金钱
在Bootloader程序中,设置了一个定时器,如果Bootloader 开始运行10S内,没有收到任何远端指令,就直接跳转到APP 运行。
if(IAPtimer>10000)
{
if(((*(vu32*)(FLASH_APP1_ADDR+4))&0xFF000000)==0x08000000)//ÅD¶ÏêÇ·ñÎa0X08XXXXXX.
{
iap_load_app(FLASH_APP1_ADDR);
}
}
结果调用 iap_load_app(FLASH_APP1_ADDR)后,程序卡死了。但是在 lwIP tcp_recv() 这个回调函数中调用这个iap_load_app(FLASH_APP1_ADDR)正常, 请问什么原因?
/////////////////////////////////////////////////
void iap_load_app(u32 appxaddr)
{
if(((*(vu32*)appxaddr)&0x2FF00000)==0x20000000)
{
jump2app=(iapfun)*(vu32*)(appxaddr+4);
MSR_MSP(*(vu32*)appxaddr);
jump2app();
}
}
|
|