OpenEdv-开源电子网

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

关于IAP- Bootloader 程序所能接收的最大 APP 程序大小的问题

[复制链接]

2

主题

17

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
253
金钱
253
注册时间
2021-6-27
在线时间
36 小时
发表于 2021-10-27 20:51:13 | 显示全部楼层 |阅读模式
5金钱
通过串口接收 APP 程序,在 usart.h 中,定义 USART_REC_LEN 为 41K 字节,也就是串口最大一次可以接收 41K 字节的数据,这也是本 Bootloader 程序所能接收的最大 APP 程序大小,但设置的偏移地址是0x10000,那么将代表我有64k的空间存储Bootloader 程序,而串口最大一次可以接收字节的数据我可以设置的更大些麽?USART_REC_LEN为更大的值,可以么?我设置了55K之后出现了报错执行区域RW_IRAM1大小(62464字节)超过限制,怎解?串口最大一次可以接收数据的大小是根据芯片的不同而固定的么?这个值得大小怎么确立?

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

使用道具 举报

2

主题

17

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
253
金钱
253
注册时间
2021-6-27
在线时间
36 小时
 楼主| 发表于 2021-10-27 21:06:08 | 显示全部楼层
懂了,粗糙的解说一下,该数组存放在RAM中,接收的值不可超过RAM中的最大值,具体解析请看转载连接https://blog.csdn.net/weixin_41746317/article/details/89049062
回复

使用道具 举报

10

主题

271

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1236
金钱
1236
注册时间
2015-5-14
在线时间
352 小时
发表于 2021-10-28 05:41:38 来自手机 | 显示全部楼层
串口一次接受数据没必要特别大,容易出错;你可以一次发一个1k或者2k,收到就写入flash,然后再发下一帧数据,这样不管程序有多大,都不影响。
回复

使用道具 举报

5

主题

356

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4670
金钱
4670
注册时间
2019-4-30
在线时间
904 小时
发表于 2021-10-28 08:20:55 | 显示全部楼层
两个2KB或者4KB大小的数组做乒乓操作 没必要定义那么大的
回复

使用道具 举报

3

主题

117

帖子

0

精华

高级会员

Rank: 4

积分
559
金钱
559
注册时间
2018-10-3
在线时间
107 小时
发表于 2021-10-28 08:39:38 | 显示全部楼层
首先 41K 并不是最大APP程序大小。 是你自己设置的串口最大接收长度。 按照正点的例程,这个我没仔细看,好像就是他把接收的数据全部存到串口缓存,也就是41K中。 接收完后在把这里面所有数据写到FLASH。  超过这个41K 就不行了,所以你完全可以分包写入。比如接收到1K数据 然后写到FLASH,在清除数据。 置于你设置的55K,这个是 根据你的芯片的RAM决定的。
回复

使用道具 举报

5

主题

123

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1850
金钱
1850
注册时间
2019-7-23
在线时间
287 小时
发表于 2021-10-28 09:06:29 | 显示全部楼层
程序过大需要分包,串口一次接收最大的字节数也就是RAM区域大小(你的程序也会用掉一部分)。
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13118
金钱
13118
注册时间
2012-11-26
在线时间
3813 小时
发表于 2021-10-28 09:28:26 | 显示全部楼层
IAP肯定是分包传输啊   例程只是个示例,跟实战不同
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 18:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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