最近在搞F4 的IAP升级,从SD卡将数据导入内部FLASH,在跳转时串口显示“非FLASH应用程序!”,一直不成功!我的APP地址为0x08040000,也就是问题出在下面这段代码
printf("开始执行FLASH用户代码!!
");
if(((*(vu32*)(FLASH_APP1_ADDR+4))&0xFF000000)==0x08000000)//判断是否为0X08XXXXXX.
{
iap_load_app(FLASH_APP1_ADDR);//执行FLASH APP代码
}else
{
printf("非FLASH应用程序,无法执行!
");
LCD_ShowString(30,210,200,16,16,"Illegal FLASH APP!");
}
在绿 {MOD}代码的位置判断不通过!
后来用F103的板子下载103的代码,就可以顺利跳转!对比发现代这段代码是相同的!
现在我在F103加了以下代码
printf("F103转换结果%d
",(*(vu32*)(0x08040000+4)));
同样在407上也加了这样的代码
printf("F407转换结果:%d
",(*(vu32*)(0x08040000+4)));
串口显示的结果如下:
F103转换结果134502209
F407转换结果:-1
为什么同样的代码在F103和F407上输出结果会不一样?
没没有人和我遇到一样的问题?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>