OpenEdv-开源电子网

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

怎么直接定义一个float型数组变量到Flash区

[复制链接]

8

主题

33

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2017-3-22
在线时间
11 小时
发表于 2017-6-1 09:25:53 | 显示全部楼层 |阅读模式
程序需要定义一个很大的float型数组变量,我之前是用malloc,但发现RAM太小,根本申请不了这么大空间,不知道可不可以把这个数组直接定义到Flash里面?急急急,望解惑,非常感谢!!!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-6-1 10:18:12 | 显示全部楼层
定义在FLASH里面的东西,还是变量吗?
回复 支持 反对

使用道具 举报

8

主题

33

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2017-3-22
在线时间
11 小时
 楼主| 发表于 2017-6-1 10:51:53 | 显示全部楼层
操作系统 发表于 2017-6-1 10:18
定义在FLASH里面的东西,还是变量吗?

那请问像我这样的情况,还有什么办法吗?
回复 支持 反对

使用道具 举报

6

主题

115

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1027
金钱
1027
注册时间
2015-6-1
在线时间
126 小时
发表于 2017-6-1 11:07:06 | 显示全部楼层
外部ram
回复 支持 反对

使用道具 举报

8

主题

33

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2017-3-22
在线时间
11 小时
 楼主| 发表于 2017-6-1 11:07:48 | 显示全部楼层
操作系统 发表于 2017-6-1 10:18
定义在FLASH里面的东西,还是变量吗?

那请问,我在Flash里用const开辟一个空间,得到adress,然后怎么利用adress往里面一个一个写数据呢,这样能实现我想要的功能吗?
回复 支持 反对

使用道具 举报

8

主题

33

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2017-3-22
在线时间
11 小时
 楼主| 发表于 2017-6-1 11:10:33 | 显示全部楼层

没有外部ram,请问还有什么办法吗,很急。。。非常感谢!!!
回复 支持 反对

使用道具 举报

33

主题

481

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
5075
金钱
5075
注册时间
2013-10-4
在线时间
654 小时
发表于 2017-6-1 11:38:40 | 显示全部楼层
flash定义数组是无法修改的,你直接将数据写入flash,用的时候去取
回复 支持 反对

使用道具 举报

1

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2015-3-17
在线时间
22 小时
发表于 2017-6-1 13:49:33 | 显示全部楼层
Douby 发表于 2017-6-1 11:07
那请问,我在Flash里用const开辟一个空间,得到adress,然后怎么利用adress往里面一个一个写数据呢,这样 ...

理论上是可以这样的,但是这样效率很低吧。另外一个重要的问题,频繁对FLASH进行写操作不好,Flash的寿命是很短的
回复 支持 反对

使用道具 举报

0

主题

34

帖子

0

精华

高级会员

Rank: 4

积分
614
金钱
614
注册时间
2016-1-25
在线时间
135 小时
发表于 2017-6-1 14:00:10 | 显示全部楼层
这不科学啊……FLASH一般都是写死在里的,一般是定义在RAM里的吧。
回复 支持 反对

使用道具 举报

8

主题

33

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2017-3-22
在线时间
11 小时
 楼主| 发表于 2017-6-1 15:45:04 | 显示全部楼层
2449164582 发表于 2017-6-1 11:38
flash定义数组是无法修改的,你直接将数据写入flash,用的时候去取

那请问怎么把float数组型的数据写入Flash呢,又怎么取呢,我可以不考虑Flash寿命问题
回复 支持 反对

使用道具 举报

33

主题

481

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
5075
金钱
5075
注册时间
2013-10-4
在线时间
654 小时
发表于 2017-6-1 17:56:08 | 显示全部楼层
Douby 发表于 2017-6-1 15:45
那请问怎么把float数组型的数据写入Flash呢,又怎么取呢,我可以不考虑Flash寿命问题

就是flash的读写操作呗
回复 支持 反对

使用道具 举报

8

主题

33

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2017-3-22
在线时间
11 小时
 楼主| 发表于 2017-6-2 09:45:26 | 显示全部楼层
2449164582 发表于 2017-6-1 17:56
就是flash的读写操作呗

请问能详细点吗。。很抱歉麻烦你了,我会int型但不会float型的。。。之前有发悬赏贴,但没有人回。http://www.openedv.com/forum.php ... d=103139&extra=
回复 支持 反对

使用道具 举报

43

主题

481

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1352
金钱
1352
注册时间
2014-12-24
在线时间
321 小时
发表于 2017-6-2 10:18:34 | 显示全部楼层
急也没用,很急也是很没用。静下心来,好好学学基础知识!
回复 支持 反对

使用道具 举报

0

主题

34

帖子

0

精华

高级会员

Rank: 4

积分
614
金钱
614
注册时间
2016-1-25
在线时间
135 小时
发表于 2017-6-2 10:34:24 | 显示全部楼层
Douby 发表于 2017-6-2 09:45
请问能详细点吗。。很抱歉麻烦你了,我会int型但不会float型的。。。之前有发悬赏贴,但没有人回。http:/ ...

快去采纳吧
回复 支持 反对

使用道具 举报

10

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
233
金钱
233
注册时间
2015-11-16
在线时间
75 小时
发表于 2017-6-2 17:26:18 | 显示全部楼层
这个简单,浮点型转成4个字节再以偏移地址写入flash,读出对应的地址头读出4个字节然后再转成浮点型就出来了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-8-18 15:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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