This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Tool/software: Code Composer Studio
Hi,
This device has 2kB of RAM and it's not quite enough for what I'm trying to do. So I would like to make use of the 64kB of FRAM. However, this has proven to be quite the challenge.
First of all, I'm running CCS Version: 10.0.0.00010
Should I have downloaded and installed CCS for MSP instead?
Target hardware is the HDC2010METER-EVM
I'm using the eZ-FET portion of the MSP‑EXP430FR5994 eval board to program the target.
The HDC2010METER-EVM runs a demo program that provides temperature and humidity measurements updated every 2 seconds (displayed on an LCD) from the on-board sensor (HDC2010).
I'm adding a feature to the supplied demo code that calculates a 5-minute moving average for both measurements.
This requires a 2-D array: 150 measurements x 8 character bytes per measurement.
Two arrays one for temperature and one for humidity:
char stmp_arr[150][8];
char shm_arr[150][8];
After studying slaa628, MSP430™ FRAM Technology – How To and Best Practices, and datasheet for MSP430FR5969, I came to the conclusion that I had to modify the linker command file (lnk_msp430fr5969.cmd):
//.bss : {} > RAM /* Global & static vars */
//.data : {} > RAM /* Global & static vars */
.bss : {} > FRAM /* Global & static vars */
.data : {} > FRAM /* Global & static vars */
.TI.noinit : {} > RAM /* For #pragma noinit */
.stack : {} > RAM (HIGH) /* Software system stack */
.TI.persistent : {} > FRAM /* For #pragma PERSISTENT */
I reassigned segments .bss and .data to FRAM (highlighted in blue). I also added the line highlighted in green.
I also went in to Project Properties, enabled MPU, and checked to manually specify memory segment and rights - gave myself all rights.
Whatever I do, my array variables always start at 0x001F26 which is still RAM.
Any ideas?
Yes, I have tried #pragma directive just as you suggested. Unfortunately, no change.
I got it.
I had the directive and variable declaration local under main.
#pragma PERSISTENT(stmp_arr)
char
stmp_arr[150][8];
**Attention** This is a public forum