MSp430G2553的RAM不够

2019-03-24 10:37发布

在程序里定义了一个全局变量的数组,数组大小为2000,但编译器提示,RAM不够,网上很多人也遇到过这种问题,通过加const可以解决。但在这里定义的数组是为了缓存传感器采集的数据,是实时变化的数据,用const显然

是不可以的。
既然RAM不够,那我可以把数组存在Flash当中,但是怎么存到g2553的flash中呢?

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
54chenjq
1楼-- · 2019-03-24 16:59
< 本帖最后由 54chenjq 于 2014-12-19 23:54 编辑

在定义这个数组的时候,可以采用以下的方式:const [数据类型]  变量名  @  地址比如const char Array[3] @ 0xFA00 = {0, 1, 2};
然后片内FLASH操作,试试看吧
lcofjp
2楼-- · 2019-03-24 17:51
 精彩回答 2  元偷偷看……
qiwan
3楼-- · 2019-03-24 21:55
您好!用const修饰之后,数组里的各元素的值就不能被修改了。但该数组是用来暂存传感器实时采集的数据,也就是说,该数组中各元素的值是不断变化的,用const应该是不可以的。
54chenjq 发表于 2014-12-19 23:47
在定义这个数组的时候,可以采用以下的方式:const [数据类型]  变量名  @  地址比如const char Array[3] @ 0xFA00 = {0, 1, 2};
然后片内FLASH操作,试试看吧

qiwan
4楼-- · 2019-03-25 00:04
g2553的RAM只有512个字节,flash有16k。RAM实在是小。但现在来不及换大的RAM的单片机了,所以想试试把采集到的数据放到flash中,然后需要的时候再从flash中取出来
lcofjp 发表于 2014-12-20 06:32
这明显是选型的问题,选个大ram的型号不就解决了吗
flash都是有寿命的,你擦来擦去的是不行的。

jishuaihu
5楼-- · 2019-03-25 04:02
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章