打印
[STM32F1]

STM32F105+IAP

[复制链接]
1801|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lin34337151|  楼主 | 2015-3-16 17:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用读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.
        }
}
沙发
zchong| | 2015-3-16 18:35 | 只看该作者
0x21920000,这个值明显不对啊,0x1920000很大了,内部sram不可能有那么大
是不是写入或者读出sd卡数据时,字节顺序有些问题?

使用特权

评论回复
板凳
lin34337151|  楼主 | 2015-3-16 19:55 | 只看该作者
字节顺序应该没问题,我之前操作也是这么读的,有文件系统,直接读BIN文件,读2K,写2K,编译10K的BIN文件,跳转正常。不知道为什么 怎么产生这么大一个值,我用的是STM32F105VC  256K Flash,64K SRAM.

使用特权

评论回复
地板
lin34337151|  楼主 | 2015-3-16 19:56 | 只看该作者
跳转地址从0X08010000开始。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

113

主题

285

帖子

3

粉丝