OpenEdv-开源电子网

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

关于存储在STM32的RAM里面的数据,单片机掉电和上电时是怎样备份和调用的?

[复制链接]

36

主题

87

帖子

0

精华

高级会员

Rank: 4

积分
517
金钱
517
注册时间
2015-8-3
在线时间
142 小时
发表于 2017-5-5 11:35:01 | 显示全部楼层 |阅读模式
就是我在程序里定义的数组放在RAM里面,因为RAM掉电之后是不带有存储功能,那我掉电之后定义在RAM里面的数据是不是备份在Flash里面?上电的时候,flash再把定义的数据放回RAM存储器里面?
假如真的是这样,假如我定义在RAM的数据有20K,我的程序flash写满到250k(F103VCT6,flash是256K),那掉电之后,RAM又放到flash里面,这样岂不是270K,超出单片机的flash?
所以,这样的逻辑不太懂?望有相关了解的同学,可以指点一下。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

333

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1838
金钱
1838
注册时间
2012-7-16
在线时间
504 小时
发表于 2017-5-5 16:00:39 | 显示全部楼层
leadercxn 发表于 2017-5-5 15:21
我是不懂程序写满了flash,已经没位置放数据了,掉电又重新上电,原来定义在RAM里面的数据要在flash里面重新 ...

微信截图_20170505155850.png
回复 支持 1 反对 0

使用道具 举报

7

主题

333

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1838
金钱
1838
注册时间
2012-7-16
在线时间
504 小时
发表于 2017-5-5 11:42:33 | 显示全部楼层
RAM和flash不是一回事,RAM掉电后就没有数据了,flash掉电后数据还在。flash可以存放执行的程序也可以存数据,没听说过RAM掉电后数据会放到flash的。你想备份到flash也是自己写函数实现的。
回复 支持 反对

使用道具 举报

16

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1292
金钱
1292
注册时间
2014-12-20
在线时间
534 小时
发表于 2017-5-5 11:50:21 | 显示全部楼层
同上
回复 支持 反对

使用道具 举报

36

主题

87

帖子

0

精华

高级会员

Rank: 4

积分
517
金钱
517
注册时间
2015-8-3
在线时间
142 小时
 楼主| 发表于 2017-5-5 11:53:47 来自手机 | 显示全部楼层
hyghyg1234 发表于 2017-5-5 11:42
RAM和flash不是一回事,RAM掉电后就没有数据了,flash掉电后数据还在。flash可以存放执行的程序也可以存数 ...

那我程序定义在RAM 里面的数据,掉点的时候,去哪了?
回复 支持 反对

使用道具 举报

16

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1292
金钱
1292
注册时间
2014-12-20
在线时间
534 小时
发表于 2017-5-5 11:59:04 | 显示全部楼层
leadercxn 发表于 2017-5-5 11:53
那我程序定义在RAM 里面的数据,掉点的时候,去哪了?

不是掉电去哪儿了,而是上电从flash加载!
回复 支持 反对

使用道具 举报

36

主题

87

帖子

0

精华

高级会员

Rank: 4

积分
517
金钱
517
注册时间
2015-8-3
在线时间
142 小时
 楼主| 发表于 2017-5-5 12:06:54 来自手机 | 显示全部楼层
BMN李 发表于 2017-5-5 11:59
不是掉电去哪儿了,而是上电从flash加载!

那也就是说,我定义了30K 的数组数据,我的程序还能写到256K (不算定义在RAM 里面的数据)?(flash 满256k ),
回复 支持 反对

使用道具 举报

16

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1292
金钱
1292
注册时间
2014-12-20
在线时间
534 小时
发表于 2017-5-5 13:34:05 | 显示全部楼层
leadercxn 发表于 2017-5-5 12:06
那也就是说,我定义了30K 的数组数据,我的程序还能写到256K (不算定义在RAM 里面的数据)?(flash 满25 ...

可以这么简单理解。
回复 支持 反对

使用道具 举报

36

主题

87

帖子

0

精华

高级会员

Rank: 4

积分
517
金钱
517
注册时间
2015-8-3
在线时间
142 小时
 楼主| 发表于 2017-5-5 15:10:28 | 显示全部楼层
BMN李 发表于 2017-5-5 13:34
可以这么简单理解。

我试过了,数据20k(TFT字库,常量)写在RAM,flash还可以写到256k,但是还是不太懂,上电时,数据明明是在flash加载到RAM的,为什么却不占flash内存,程序还可以写到256K?
回复 支持 反对

使用道具 举报

36

主题

87

帖子

0

精华

高级会员

Rank: 4

积分
517
金钱
517
注册时间
2015-8-3
在线时间
142 小时
 楼主| 发表于 2017-5-5 15:21:29 | 显示全部楼层
我是不懂程序写满了flash,已经没位置放数据了,掉电又重新上电,原来定义在RAM里面的数据要在flash里面重新加载到RAM,但是flash哪来的空间放要定义在RAM里面的数据?
回复 支持 反对

使用道具 举报

16

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1292
金钱
1292
注册时间
2014-12-20
在线时间
534 小时
发表于 2017-5-5 15:27:42 | 显示全部楼层
leadercxn 发表于 2017-5-5 15:10
我试过了,数据20k(TFT字库,常量)写在RAM,flash还可以写到256k,但是还是不太懂,上电时,数据明明是在 ...

哦。我好奇是什么样的代码把256K的flash用完了的。。。
回复 支持 反对

使用道具 举报

36

主题

87

帖子

0

精华

高级会员

Rank: 4

积分
517
金钱
517
注册时间
2015-8-3
在线时间
142 小时
 楼主| 发表于 2017-5-5 16:06:49 | 显示全部楼层
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-8-21 14:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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