使用读SD中的BIN文件进行IAP升级,STM32F103系列做过很多类似的,IAP都很成功,在STM32F105上,我的BIN文件有162K, 运行到下面的函数时 temp=0x21920000,当我把工程代码都屏蔽掉,只闪一个LED,生成10K BIN文件,运行到下面temp=0x20000000,跳转之后LED正常闪烁,说明跳转正常,162K bin 写入FLASH之后 盏地址不合法了吗? 有没大侠遇到过,请指教一下,怎么改动。我不判断这个条件,跳转过去也不起来。
void Jump2App(INT32U Addr)
{
INT32U temp=0;
temp=((*(vu32*)Addr)&0x2FFE0000);
// if(temp== 0x20000000) //检查栈顶地址是否合法.
{
AppStart = (fun)(*(vu32*)(Addr+4)); //用户代码区第二个字为程序开始地址(复位地址)
MSR_MSP(*(vu32*)Addr);
AppStart(); //跳转到APP.
}
} |