OpenEdv-开源电子网

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

IAP 在线升级时,利用乒乓缓冲,接收超过SRAM的大数据,问题咨询

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2020-4-19
在线时间
4 小时
发表于 2021-12-18 18:16:40 | 显示全部楼层 |阅读模式
10金钱
学了正点原子的IAP串口试验,实验中定义了一个55k的大数组,但是如果实际的文件大于55k,是不是原子哥程序就无法满足,于是学习到网上的乒乓缓冲,解决思路是定义两个小数组来接收文件,当数组1满了,就把开启数组2接收,与此同时数组1写入flash,在数组2满之前,数组1的flash必须写完 ,等待数组2接收完毕,当时数组2接收完毕,开启数组1接收与此同时数组2写入flash,当再次对数组1写入flash时,if(((*(vu32*)(0X20001000+4))&0xFF000000)==0x08000000)//判断是否为0X08XXXXXX. 原子哥的这个条件满足不了了,查了4天的问题  百度了4天也没解决。
1.这是按照原子哥  定义了绝对地址 SRAM 的两个小数组   
         
2.下图是按照原子哥的 改造的乒乓缓存的判断  和if(((*(vu32*)(0X20001000+4))&0xFF000000)==0x08000000)  这个判断

3.下图是 串口打印的第一次对数组1烧写flash时的情况  没问题

4. 下图是第二次对数组2写入flash的  打印结果   没问题

5.下图是第三次 又对接收满了的数组1 写入flash    出现报错 不是flash应用程序


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

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2020-4-19
在线时间
4 小时
 楼主| 发表于 2021-12-18 18:23:08 | 显示全部楼层
1.这是按照原子哥  定义了绝对地址 SRAM 的两个小数组  
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 08:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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