首页 > 其他 > 详细

关于MSP430FR6989FRAM的使用问题

时间:2016-03-01 18:38:41      阅读:764      评论:0      收藏:0      [点我收藏+]

因为原5310片子内存不够,所以将平台换为FR6989系列。其解决的问题是:在程序运行过程中使用一个超级大数组(50KB)。第一次分配我们是这么干的:

1,将FRAM中的50KB(0x10040-23FFF)地址分配成内存使用:在.xcl文件里(.xcl文件在IAR的配置文件中)将-Z(DATA)DATA20_I,DATA20_Z,DATA20_N移出内存分配区域至FRAM分配命令区域,并改为-Z(DATA)DATA20_I,DATA20_Z,DATA20_N=10040-23FFF.

 

2,在代码中,大区域数组定义为__data20 int a[];

3,上述两步的意思是,将地址为20位的全局数据放置在0x10040-23FFF的位置,并作为内存使用

结果是:编译通过,但分配失败,将分配区域改为0x10040-16FFF即可使用,但数组大小只能为1KB。

百思不得其解,求助于国内某代理商技术支持部,总算搞定,解决方法如下:

1,不需要修改.xcl文件内存部分的分配,而需要在FRAM设置中添加如下地址:

  

Read/write data in FRAM
//

-Z(CONST)DATA16_P,DATA20_P=4400-FF7F,10040-1C800
-Z(DATA)DATA16_HEAP+_DATA16_HEAP_SIZE
-Z(DATA)DATA20_HEAP+_DATA20_HEAP_SIZE

2,将大区域数组使用写入固定地址的方式(@或#pragma location)存入指定的FRAM。

 

#pragma location = 0x10040
__no_init VSampleBuf sampAcBuf;

其思想是:FRAM铁电存储本身就具备了类似SRAM的特性,所以直接往该区域写大数据即可,在程序当中将其直接作为内存使用。

 

 

关于MSP430FR6989FRAM的使用问题

原文:http://www.cnblogs.com/dida-zzy/p/5161233.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!