TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430FR FRAM读写

使用#pragma PERSISTENT命令可以定义变量到FRAM,并且正常读写,代码如下:
#pragma PERSISTENT(data);
uint16_t data[1024] = {0};

如果再加上#pragma LOCATION指定地址后,编译没问题,但是程序运行后无法正常读写变量,为什么?

#pragma LOCATION(data, 0x10000);

#pragma PERSISTENT(data);

uint16_t data[1024] = {0};

m:

m:

求回答啊

m:

求回答

Ling Zhu2:

m

使用#pragma PERSISTENT命��可以定义变量到FRAM,并且正常读写,代码如下:#pragma PERSISTENT(data);uint16_t data[1024] = {0};

如果再加上#pragma LOCATION指定地址后,编译没问题,但是程序运行后无法正常读写变量,为什么?

#pragma LOCATION(data, 0x10000);

#pragma PERSISTENT(data);

uint16_t data[1024] = {0};

m:

回复 Ling Zhu2:

MSP430FR5994

Gary Gao:

回复 m:

参考这个帖子:http://www.deyisupport.com/question_answer/microcontrollers/msp430/f/55/p/144094/406740.aspx#406740

m:

回复 Gary Gao:

.cmd文件如上所示示可以正常读写,但此时使用的FRAM(origin = 0x4000, length = 0xBF80) , 如何更改到FRAM2区域?直接将 > 0x4000 改为 > 0x10000程序不能正常运行,附件是完整的cmd文件

m:

回复 Gary Gao:

.cmd文件如附件所示,但此时使用的FRAM(origin = 0x4000, length = 0xBF80) , 如何更改到FRAM2区域?直接将 > 0x4000 改为 > 0x10000程序不能正常运行

Gary Gao:

回复 m:

你好

不是特别清楚你要做什么,前面在FRAM地址自定义变量的问题解决了吗?你为什么要把 0x4000 改为 > 0x10000呢?只改这个肯定不行啊,要把长度也要修改不然地址空间定义有重叠。

m:

回复 Gary Gao:

使用#pragma PERSISTENT 在FRAM地址自定义变量,但是可以使用的空间有限,只有47KB,比如我要定义两个24kB的数组就会溢出,所以需要改地址,MSP430FR5994默认的配置将FRAM分为两大部分:

FRAM : origin = 0x4000, length = 0xBF80 FRAM2 : origin = 0x10000,length = 0x34000

我需要在FRAM2区域内自定义变量?

赞(0)
未经允许不得转载:TI中文支持网 » MSP430FR FRAM读写
分享到: 更多 (0)