OpenEdv-开源电子网

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

STM32 存储代码段的FLASH和存储数据的FLASH可以交叉吗?

[复制链接]

22

主题

87

帖子

0

精华

高级会员

Rank: 4

积分
664
金钱
664
注册时间
2019-1-30
在线时间
111 小时
发表于 2020-2-13 22:09:11 | 显示全部楼层 |阅读模式
10金钱
最近在做项目的IAP功能,出现一个疑问。就是用户程序有FLASH写操作,以保存工作中的一些工作参数。假如说这块保存数据的FLASH的起始地址为0X0807D000并且用户程序使用的FLASH 保存数据需要的空间还不是很大,假如只用了1K的空间。我们知道从0X0807D000到0x0807ffff还有不小的空间,大概11K左右。问题来了,如果做IAP功能,我需要下载的用户程序还很大,我想将FALSH中的空间尽可能的都得到有效的利用,从而防止一些异常的发生。那么假如下载的程序从设定的起始地址开始写入FLASH,假设这段用户程序需要写到0x0807ffff这么大的空间减去中间保存数据用的那1k FLASH空间才够存储写入完毕。在iap下载写入的过程中可不可以跳过保存参数的那段FLASH 空间,再继续向flash中写入下载的用户程序。这样保证了IAP升级不会更改FLASH保存的工作参数的信息,同时也尽可能的利用了FLASH的空间。但是有个问题,这样更新写入的程序,可不可运行,因为它在FLASH 空间中是不连续的,求大神指点,万分感谢。

最佳答案

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

可以是可以,分散加载咯,不过麻烦啊。。。你不能一次性设计好么?比如数据就是存储区在最后段。前面和中间空闲的位置,都用来给你存储代码,不就OK了么?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2020-2-13 22:09:12 | 显示全部楼层
可以是可以,分散加载咯,不过麻烦啊。。。你不能一次性设计好么?比如数据就是存储区在最后段。前面和中间空闲的位置,都用来给你存储代码,不就OK了么?
回复

使用道具 举报

22

主题

87

帖子

0

精华

高级会员

Rank: 4

积分
664
金钱
664
注册时间
2019-1-30
在线时间
111 小时
 楼主| 发表于 2020-2-17 09:29:45 | 显示全部楼层
原子哥,现在项目的硬件情况是只有一个片上FLASH 512k大小,当初设计硬件的时候没有添加SPI FLASH,目前的程序大小有477K左右的大小,但是呢大部分是程序中的各类图片占得FLASH空间比较多,足足有400K,现在是打算先擦除FLASH代码段那部分,再将程序存储到FLASH 中代码段,但是被驳回了,说要先将下载的程序做存储,然后如果没问题,再做覆盖,再跳转,就像您例程中的IAP的思路,但是FLASH就512K,我该怎么操作?程序中图片400K(通过Image将图片生成的二进制变量,在程序中作为用const类型修饰的若干数组保存着),代码段77K,总共程序大小477K,
回复

使用道具 举报

0

主题

23

帖子

0

精华

高级会员

Rank: 4

积分
697
金钱
697
注册时间
2017-5-29
在线时间
356 小时
发表于 2020-2-17 09:43:17 | 显示全部楼层
有点复杂,不会,帮顶。
回复

使用道具 举报

22

主题

87

帖子

0

精华

高级会员

Rank: 4

积分
664
金钱
664
注册时间
2019-1-30
在线时间
111 小时
 楼主| 发表于 2020-2-17 09:47:48 | 显示全部楼层
另外STM32的固件程序可以传输压缩版的吗,然后BootLoader再对固件进行校验、解密、解压缩等操作,查找没有找到详尽的资料,只是在https://www.rt-thread.org/docume ... boot/an0028-rtboot/ 这里面的RT-Thread文档中心,看到了一句。
回复

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2020-2-19 21:47:24 来自手机 | 显示全部楼层
程序分配写到哪里,烧录就要写到哪里,不然肯定不能正常运行
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-20 20:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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