OpenEdv-开源电子网

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

请教大家关于IAP第二遍下载程序不执行的问题

[复制链接]

9

主题

162

帖子

0

精华

高级会员

Rank: 4

积分
933
金钱
933
注册时间
2017-3-23
在线时间
255 小时
发表于 2017-12-12 13:49:56 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 未知1908 于 2017-12-12 15:26 编辑

我用原子的例程做修改,去掉了按键功能,新的APP程序下载进去就直接运行。
1、第一遍,BOOTloader接收APP程序后,可以执行APP程序,APP程序为一个闪灯程序。
2、这时候重启单片机,我串口再次发送APP程序,这个第二遍下载的闪灯程序就无法运行了,必须要擦除这个芯片,再重新下载才可以,但是依旧不能下载第二遍。
请问这个问题要怎么解决。
APP和bootloader程序的设置应该是没问题的,因为第一遍可以运行,为什么第二遍再在下载就不能运行了呢?

问题更新:
第一遍写入的时候,内存中0x8010000开始的数据都是对的,程序可以正常运行,第二遍写入的时候,没写之前还是原来的程序,但是在执行写入内存之后,中间开始数据就乱了,导致了第二遍程序不能正常运行。

最佳答案

查看完整内容[请看2#楼]

原来我用的是L系列的,然后每一页不是2K,而是256字节。。。修改了擦除代码后现在可以了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

162

帖子

0

精华

高级会员

Rank: 4

积分
933
金钱
933
注册时间
2017-3-23
在线时间
255 小时
 楼主| 发表于 2017-12-12 13:49:57 | 显示全部楼层
原来我用的是L系列的,然后每一页不是2K,而是256字节。。。修改了擦除代码后现在可以了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2017-12-13 01:03:03 | 显示全部楼层
是不是你的IAP代码,没做扇区擦除?要先擦除,才能写入
回复

使用道具 举报

9

主题

162

帖子

0

精华

高级会员

Rank: 4

积分
933
金钱
933
注册时间
2017-3-23
在线时间
255 小时
 楼主| 发表于 2017-12-13 08:48:28 | 显示全部楼层
本帖最后由 未知1908 于 2017-12-13 09:13 编辑
正点原子 发表于 2017-12-13 01:03
是不是你的IAP代码,没做扇区擦除?要先擦除,才能写入

原子哥,看你帖子说FLASH 以前的程序是有漏洞的,我现在用四轴的那个程序试试看
回复

使用道具 举报

9

主题

162

帖子

0

精华

高级会员

Rank: 4

积分
933
金钱
933
注册时间
2017-3-23
在线时间
255 小时
 楼主| 发表于 2017-12-14 14:18:46 | 显示全部楼层
本帖最后由 未知1908 于 2017-12-14 14:22 编辑
正点原子 发表于 2017-12-13 01:03
是不是你的IAP代码,没做扇区擦除?要先擦除,才能写入

原子哥我的程序第二次从0x8010000开始擦除并写入,开始几次都是可以的但是在0x8020000开始擦除就会出错,从0x8020000开始就会写入很多乱七八糟的数据,然后程序就不能运行了。请问这个是怎么回事,已经用的是带WriteAddr+=secremain*2;的新程序了,还是不行,还有为什么每次擦除只擦256个数据,比如0x8010000~0x80100FF??
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 05:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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