Unfortunately, I have to come back to this topic. My #pragma PERSISTENT doesn't seem to work as it should.
I'm working with CCS 6.1.1.00022. In my code, there is an array defined which should be stored in FRAM
#pragma PERSISTENT(my_variable) uint8_t my_variable[256];
The linker file looks okay:
FRAM : origin = 0xC200, length = 0x3D80
SECTIONS
{
GROUP(ALL_FRAM)
{
GROUP(READ_WRITE_MEMORY)
{
.TI.persistent : {} /* For #pragma persistent */
.cio : {} /* C I/O buffer */
.sysmem : {} /* Dynamic memory allocation area */
} ALIGN(0x0200), RUN_START(fram_rw_start)
...
} > FRAM
But when I compile the project, my memory map file looks as follows:
MEMORY CONFIGURATION
name origin length used unused attr fill
---------------------- -------- --------- -------- -------- ---- --------
RAM 00001c00 00000400 00000206 000001fa RWIX
FRAM 0000c200 00003d80 00002344 00001a3c RWIX
SECTION ALLOCATION MAP
output attributes/
section page origin length input sections
-------- ---- ---------- ---------- ----------------
.bss 0 00001c00 0000015f UNINITIALIZED
00001c00 00000100 (.common:my_variable)
So the pragma doesn't put my_variable into FRAM. How can I fix this?