OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4429|回复: 9

STM32F103的IAP升级应用遇到的问题探讨

[复制链接]

20

主题

49

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2016-6-16
在线时间
56 小时
发表于 2019-12-10 09:44:07 | 显示全部楼层 |阅读模式

硬件: STM32F103RC
编译器:MDK
工程描述:按照原子“IAP”升级例程修改,上电boot启动,然后跳转到app---------------------------------------这一步没问题;
                                                                app程序里面串口接收bin文件,然后保存到外部flah缓存-------------这一步没问题,bin文件数据经过对比是对的。
                                                                app然后跳转到boot程序,再从外部flash读取刚缓存的bin文件-------这一步没问题,bin文件数据经过对比是对的。
                                                                然后再经过烧写程序,烧写到内部flash--------------------------------这一步复位地址和栈顶地址经过跟bin文件比对,都对。
                                                                然后跳转到app,再然后就没有按照预期跳转过去app,但是此时boot程序的串口中断可以进入,因为我串口助手发数据,boot的串口中断有数据打印出。但是boot却也没有一直在大循环里运行,只是能响应串口中断。
                                                                搞不懂这种现象的原因。。。。。。。集思广益,搞定它!!!!!
$$ZNSQ}4B_W%W@~6}{QKP[4.png
无标题.png

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

20

主题

49

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2016-6-16
在线时间
56 小时
 楼主| 发表于 2019-12-10 16:36:54 | 显示全部楼层
完结!

唉,问题出在写flash程序上,更新了一下终于搞定。之前的代码都没错,一直错的都是些falsh程序,不过也好,熟悉了iap升级的原理细节,接下来做远程OTA更是得心应手。
回复 支持 反对

使用道具 举报

20

主题

49

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2016-6-16
在线时间
56 小时
 楼主| 发表于 2019-12-10 09:47:43 | 显示全部楼层
补充一点:通过仿真器烧写boot和app程序,然后在boot里面手动跳转到app是可以的,app在跳转到boot也没问题,boot和app循环跳转没问题
回复 支持 反对

使用道具 举报

20

主题

49

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2016-6-16
在线时间
56 小时
 楼主| 发表于 2019-12-10 09:54:00 | 显示全部楼层
问题就出在烧写程序到内部flash这里。仿真器下载程序没问题,用烧写函数烧写到内部flash就不行,所以原因只有两个,1   函数烧写的不对。但是烧写完,我再读出跟bin文件对比,是一样的。  2 bin文件不对,但是同样的bin文件通过ST-link Uility烧写进去,跳转正常。  奇怪?  难道烧写长度不对?
回复 支持 反对

使用道具 举报

37

主题

596

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1574
金钱
1574
注册时间
2017-7-17
在线时间
308 小时
发表于 2019-12-10 11:43:30 | 显示全部楼层
本帖最后由 candylife9 于 2019-12-10 11:45 编辑

大小端问题有注意吗?你bin里面一个数据是1234,也许在写到flash的时候,需要按照3412的顺序存放。
回复 支持 反对

使用道具 举报

6

主题

1127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1656
金钱
1656
注册时间
2019-8-15
在线时间
102 小时
发表于 2019-12-10 12:40:54 | 显示全部楼层
帮顶                             
成功没有捷径
回复 支持 反对

使用道具 举报

6

主题

1127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1656
金钱
1656
注册时间
2019-8-15
在线时间
102 小时
发表于 2019-12-10 12:41:16 | 显示全部楼层
感谢楼主分享                                             
成功没有捷径
回复 支持 反对

使用道具 举报

20

主题

49

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2016-6-16
在线时间
56 小时
 楼主| 发表于 2019-12-10 12:44:30 | 显示全部楼层
调了一上午,发现是例程函数里面字节长度不对,我没注意,改了就好了
无标题.png
回复 支持 反对

使用道具 举报

20

主题

49

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2016-6-16
在线时间
56 小时
 楼主| 发表于 2019-12-10 12:59:57 | 显示全部楼层
虽然可以跳转了,但是程序没有更新上。。。。。。。继续找原因
回复 支持 反对

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2019-12-27
在线时间
8 小时
发表于 2019-12-27 14:18:39 | 显示全部楼层
我也是准备做IAP升级这个事情,不太会,一直都在找资料,慢慢写吧


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-20 22:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表