找回密码
 立即注册

QQ登录

只需一步,快速开始

M031LD2AE做IAP升级的时候跳转不成功

查看数: 4330 | 评论数: 13 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-10-11 10:51

正文摘要:

大家好,想请教一下大家关于M031系列芯片IAP功能开发的问题。先把新固件的.bin文件先存到外挂的flash(W25Q256),固件包的大小为2400bytes,需要升级时把.bin文件加载到片内的flash的APROM(起始地址为0x4000)。当需要 ...

回复

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

hidden
回复 游客 发表于 2022-11-16 11:09:49
新唐一级代理,FAE支持,VX:13538292986
回复 celink-c000559 发表于 2022-10-14 16:44:13
admin 发表于 2022-10-14 15:51
请先去参考测试FMC_MultiBoot例程,FMC_Boot0是放在0x4000地址的。每个工程编译前先在keil里设置对应的加 ...

好的,感谢您的指导。
回复 admin 发表于 2022-10-14 15:51:56

回复 admin 发表于 2022-10-14 15:51:33
celink-c000559 发表于 2022-10-14 03:15
感谢您的回复,请问0x4000上有代码,但是0x4000地址上的程序执行地址指向了APP1的话,有什么解决的方法。 ...

请先去参考测试FMC_MultiBoot例程,FMC_Boot0是放在0x4000地址的。每个工程编译前先在keil里设置对应的加载执行地址(例程已经配置好),然后编译下载到APROM里。
回复 celink-c000559 发表于 2022-10-14 11:15:29

感谢您的回复,请问0x4000上有代码,但是0x4000地址上的程序执行地址指向了APP1的话,有什么解决的方法。非常感谢您的指导。
回复 admin 发表于 2022-10-12 15:30:48

回复 admin 发表于 2022-10-12 15:28:15
不断复位到APP1,可能0X4000上没代码,也可能0x4000地址上的程序执行地址指向了APP1. 可以看0x4004位置的数据是否指向0x4000以前的地址。
回复 admin 发表于 2022-10-12 15:24:00
celink-c000559 发表于 2022-10-11 09:27
工程师你好,我现在把APP1放到APROM地址为0的地方,把APP2放到APROM地址为0x4000的地方,然后APP2的加载 ...

请先去参考测试FMC_MultiBoot例程,FMC_MultiBoot是放在APROM 0地址的,FMC_Boot0是放在0x4000地址的。每个工程编译前先在keil里设置对应的加载执行地址(例程已经配置好),然后编译下载到APROM里。设置芯片启动位置为APROM带IAP,那么每次芯片上电都会从APROM的0地址开始执行。
APROM 0地址上的程序再通过0页映射和系统复位可以切换到其他程序上去。
回复 celink-c000559 发表于 2022-10-11 17:27:18

工程师你好,我现在把APP1放到APROM地址为0的地方,把APP2放到APROM地址为0x4000的地方,然后APP2的加载执行地址也设置成了0x4000.如果我反复执行上述代码,会存在跳转失败并不断复位到代码1的情况而跳转不到代码2的地方,测了很久都没有找到原因。还有就是我已经将程序编译后转化成.bin文件了,这个.bin文件是不会有与keil相关设置的信息了吧?非常感谢您的回复与指导。
新唐MCU