OpenEdv-开源电子网

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

战舰开发板IAP升级程序疑惑

[复制链接]

2

主题

4

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2013-5-18
在线时间
1 小时
发表于 2013-5-18 14:01:36 | 显示全部楼层 |阅读模式
用开发板的实验48 串口IAP实验作测试,依据手册上说的先用ISP把IAP-Bootloader V1.0程序烧录到STM32,然后用串口发送实验15 RTC实验_FLASH_APP里的bin 文件,并执行程序能正常执行。
我再作了一下测试,在 实验15 RTC实验_FLASH_APP加入一句printf("fromelf.exe!\r\n");发送语句,再通过  串口 发送实验15 RTC实验_FLASH_APP里的新边的bin 文件,这时问题来了,程序跑飞了,
我把原来的 实验15 RTC实验_FLASH_APP里的bin 文件烧录进去又能正常运行,
经过反复测试,得出结论,如果APP程序作 了修改,必须 先用ISP把IAP-Bootloader V1.0程序烧录到STM32,再把新的APP里的bin文件再通过串口发送下去
如果是这样那这个IAP就没意义了,不知是不是我操作的问题,还是这个IAP就是这样的机制?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-18 15:55:47 | 显示全部楼层
没问题的,你代码有问题。不知道你怎么测试的!!!
printf放在哪里?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

4

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2013-5-18
在线时间
1 小时
 楼主| 发表于 2013-5-18 17:31:46 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
不写printf也会出错,增加一个变量都会这样
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-18 17:58:14 | 显示全部楼层
没遇到过
我实际测试,跑的很正常。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

4

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2013-5-18
在线时间
1 小时
 楼主| 发表于 2013-5-18 23:01:25 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
问题找到了,我把程序移值到了中容量的的STM32F103RB中,
iap_write_appbin()函数
if(i==512)
{
i=0;
STMFLASH_Write(fwaddr,iapbuf,512);
fwaddr+=1024;//偏移1028  16=2*8.所以要乘以2.
}
建议把512及1024这两个参数定义成宏的形式,这样程序的移值性就非常好了
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2013-11-21
在线时间
1 小时
发表于 2013-11-21 17:22:34 | 显示全部楼层
回复【5楼】wishon2099:

回复【4楼】正点原子:
---------------------------------
问题找到了,我把程序移值到了中容量的的STM32F103RB中,
iap_write_appbin()函数
if(i==512)
{
i=0;
STMFLASH_Write(fwaddr,iapbuf,512);
fwaddr+=1024;//偏移1028  16=2*8.所以要乘以2.
}
建议把512及1024这两个参数定义成宏的形式,这样程序的移值性就非常好了

---------------------------------
我移植了你这个程序,也按照这个改了,但是情况和你的一样,升级后好像跑飞了。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-8 22:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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