OpenEdv-开源电子网

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

STIM32 串口IAP

[复制链接]

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-4-27
在线时间
48 小时
发表于 2018-4-4 09:56:03 | 显示全部楼层 |阅读模式
5金钱
1.串口IAP更新时, 操作无法正常进行


主要在于上述 红色框内的条件无法满足


2.相关设置如下图所示:  主控制器为 STM32F103C8T6  flash 为128K


3.如果直接将iapbin程序通过JTAG下载到stm32 ,然后下载 iaptest程序,执行FLASH_APP按键按下后,可执行iapbin程序,复位后亦可执行iaptest程序;
4. 串口接收允许的大小 大于 iapbin的大小;
5.串口接收限定起始地址为 0x020001000;

主要问题是通过串口执行下载iapbin时无法下载成功,还请各位解惑主要问题出在哪里?


最佳答案

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

RAM起始地址只要大于FLASHDownLoad ->RAM中的size, 给定允许的大小即可,我重新调试,主要原因在于串口接收结束判断不对,按照原子例子的方式得不到正确的值,重新调整后已经可以正常操作了,感谢你提供的帮助
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-4-27
在线时间
48 小时
 楼主| 发表于 2018-4-4 09:56:04 | 显示全部楼层
林光华ing 发表于 2018-4-4 10:21
串口接收限定起始地址为 0x020001000;
程序不该这么写吧。虽然我知道原子的例子是这么写。。。。
还不如 ...

RAM起始地址只要大于FLASHDownLoad ->RAM中的size, 给定允许的大小即可,我重新调试,主要原因在于串口接收结束判断不对,按照原子例子的方式得不到正确的值,重新调整后已经可以正常操作了,感谢你提供的帮助
回复

使用道具 举报

7

主题

199

帖子

0

精华

高级会员

Rank: 4

积分
711
金钱
711
注册时间
2017-5-20
在线时间
96 小时
发表于 2018-4-4 10:21:31 | 显示全部楼层
串口接收限定起始地址为 0x020001000;
程序不该这么写吧。虽然我知道原子的例子是这么写。。。。
还不如把ram起始地址0x020001000;(或者其他合适位置)
串口接收buf起始地址为0x020000000;
如果你使用过M0系列的单片机就明白为什么这样做了。。。
回复

使用道具 举报

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-4-27
在线时间
48 小时
 楼主| 发表于 2018-4-4 11:13:02 | 显示全部楼层
林光华ing 发表于 2018-4-4 10:21
串口接收限定起始地址为 0x020001000;
程序不该这么写吧。虽然我知道原子的例子是这么写。。。。
还不如 ...

不是很明白,我这里只有FLASH APP
回复

使用道具 举报

7

主题

199

帖子

0

精华

高级会员

Rank: 4

积分
711
金钱
711
注册时间
2017-5-20
在线时间
96 小时
发表于 2018-4-4 11:20:16 | 显示全部楼层
店小迩 发表于 2018-4-4 11:13
不是很明白,我这里只有FLASH APP

1.JTAG下载APP正常运行。证明APP是没有问题的
2.iap串口下载程序不行,那就是iap过程出了问题。
本来原子的例子就是有问题的,程序超过一定大小就有可能出问题。
但是可能你的程序不是原子的那个问题。
3.你看看option->linker有没有选择第一项?
回复

使用道具 举报

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-4-27
在线时间
48 小时
 楼主| 发表于 2018-4-4 11:43:06 | 显示全部楼层
林光华ing 发表于 2018-4-4 11:20
1.JTAG下载APP正常运行。证明APP是没有问题的
2.iap串口下载程序不行,那就是iap过程出了问题。
本来原 ...

option ->linker,use memory layout from target dialog 是选中状态,默认的地址是0x8000000  和 0x20000000
回复

使用道具 举报

7

主题

199

帖子

0

精华

高级会员

Rank: 4

积分
711
金钱
711
注册时间
2017-5-20
在线时间
96 小时
发表于 2018-4-4 11:51:13 | 显示全部楼层
店小迩 发表于 2018-4-4 11:43
option ->linker,use memory layout from target dialog 是选中状态,默认的地址是0x8000000  和 0x20000 ...

然后你改了APP地址了吧,0x0800x000
回复

使用道具 举报

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-4-27
在线时间
48 小时
 楼主| 发表于 2018-4-4 13:12:34 | 显示全部楼层
林光华ing 发表于 2018-4-4 11:51
然后你改了APP地址了吧,0x0800x000

option这里的选择没有动,只是在app程序主函数中加了中断向量偏移,以及Target的IROM1的地址,请问有什么问题吗?
回复

使用道具 举报

7

主题

199

帖子

0

精华

高级会员

Rank: 4

积分
711
金钱
711
注册时间
2017-5-20
在线时间
96 小时
发表于 2018-4-4 13:48:19 | 显示全部楼层
店小迩 发表于 2018-4-4 13:12
option这里的选择没有动,只是在app程序主函数中加了中断向量偏移,以及Target的IROM1的地址,请问有什么 ...

红色框内的条件无法满足
这个说明IAP程序下载过程不正确。
你看看app程序的map文件里面的镜像地址,符不符合?
用STM32 ST-LINK Utility直接观察下载后的单片机rom数据,与APP的BIN文件对照,也可以查看是否正确。
回复

使用道具 举报

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-4-27
在线时间
48 小时
 楼主| 发表于 2018-4-4 14:31:01 | 显示全部楼层
林光华ing 发表于 2018-4-4 13:48
红色框内的条件无法满足
这个说明IAP程序下载过程不正确。
你看看app程序的map文件里面的镜像地址,符 ...

C:\Users\ADA\Desktop\3.png
回复

使用道具 举报

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-4-27
在线时间
48 小时
 楼主| 发表于 2018-4-4 14:31:52 | 显示全部楼层

用STM32 ST-LINK Utility与APP bin 对比 是一样的
回复

使用道具 举报

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-4-27
在线时间
48 小时
 楼主| 发表于 2018-4-4 14:34:13 | 显示全部楼层
林光华ing 发表于 2018-4-4 13:48
红色框内的条件无法满足
这个说明IAP程序下载过程不正确。
你看看app程序的map文件里面的镜像地址,符 ...

3.png
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2018-4-5
在线时间
9 小时
发表于 2018-4-5 10:05:55 | 显示全部楼层
本帖最后由 ENMMMMM 于 2018-4-5 10:08 编辑
林光华ing 发表于 2018-4-4 11:20
1.JTAG下载APP正常运行。证明APP是没有问题的
2.iap串口下载程序不行,那就是iap过程出了问题。
本来原 ...

你好,我现在就出现了程序过大不能用iap下载,有什么解决办法吗
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2018-4-5
在线时间
9 小时
发表于 2018-4-5 15:26:26 | 显示全部楼层
店小迩 发表于 2018-4-4 09:56
RAM起始地址只要大于FLASHDownLoad ->RAM中的size, 给定允许的大小即可,我重新调试,主要原因在于串口接 ...

楼主怎么改的,我也出现这个问题
回复

使用道具 举报

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-4-27
在线时间
48 小时
 楼主| 发表于 2018-4-5 16:28:04 | 显示全部楼层
ENMMMMM 发表于 2018-4-5 15:26
楼主怎么改的,我也出现这个问题

应该是你的地址设置超出范围了,flashapp地址偏移,以及size的大小取决于你的flashapp的大小,例如我使用的STM32,128KFLASH,app允许的大小为 128k-偏移地址
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2018-4-5
在线时间
9 小时
发表于 2018-4-5 19:06:40 | 显示全部楼层
地址应该没有超范围,我的程序一开始是可以下载的,现在加的东西多了就不能了,不明原因
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2018-4-5
在线时间
9 小时
发表于 2018-4-5 19:07:17 | 显示全部楼层
店小迩 发表于 2018-4-5 16:28
应该是你的地址设置超出范围了,flashapp地址偏移,以及size的大小取决于你的flashapp的大小,例如我使用 ...

地址应该没有超范围,我的程序一开始是可以下载的,现在加的东西多了就不能了,不明原因
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2018-4-25
在线时间
1 小时
发表于 2018-4-25 16:34:04 | 显示全部楼层
ENMMMMM 发表于 2018-4-5 19:07
地址应该没有超范围,我的程序一开始是可以下载的,现在加的东西多了就不能了,不明原因

解决了吗?我也遇到这个问题了.IAP 通过xmodem协议下载APP,bin程序大于10K好像就烧写不进去l
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 05:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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