最近做stm32f0远程升级,
升级方案是IAP(8000000-8004000) + APP1(4000-9000) + APP2(9000-E000)+预留flag区域,
1 IAP 负责通过flash的flag去判断启动app1 还是app2
2 app1和app2 中通过串口收数据去互相更新,比如,当前运行的是app1上就去更新app2,并且设置相应flag,最后软件重启跳到IAP判断flag启动哪一个的app
问题,
bin文件是一个rom配置下生成的,在app1中更新app2是成功,app2中用ymode下载bin的时候,程序异常跑飞(使用同一个bin文件升级,用ymode模式下载),但是分别编译不同rom设置的bin文件,根据实际地址下载的话,不会有异常疑问,
bin文件是纯二进制文件,keill设置的rom地址生成的bin必须烧录到flash对应的真实地址上吗?
比如keill设置的是app1的rom地址,就一定要烧录到flash 4000地址上吗?
有大神给指点下吗,纠结了好久,附上keill配置图片
1 iap配置图片
2 app1配置图片
3 app2配置图片,和app1是同一工程,只是配置不一样
|