Hi, I saw the specs indicating FR6989 device comes with128Kb FRAM memory space, I recently involved in a project requires for 120KB Flash memory. I've try it out with Dev board and keeps getting error from compiler:
Description Resource Path Location Type
#10099-D program will not fit into available memory. placement with alignment fails for section "READ_WRITE_MEMORY" size 0x1e0bc lnk_msp430fr6989.cmd /sample line 134 C/C++ Problem
I simply declare the memory space with code like:
#pragma PERSISTENT(MEM_DATA1) //first Data Block
unsigned int MEM_DATA1[30][512] = { 0 };
#pragma PERSISTENT(MEM_DATA2)//second Data Block
unsigned int MEM_DATA2[30][512] = { 0 };
for testing I only try to use 30*2*512 = 30KB memory space for each block, totally 60kb for 2 blocks, but it still pops out error messages.
The compiler will pass when I use MEM_DATA[20][512] = {0}, In order to make use of 120KB FRAM, do I need to change the memory map to fit memory block? What else should I do?
and the memory map is
MEMORY
{
SFR : origin = 0x0000, length = 0x0010
PERIPHERALS_8BIT : origin = 0x0010, length = 0x00F0
PERIPHERALS_16BIT : origin = 0x0100, length = 0x0100
RAM : origin = 0x1C00, length = 0x0800
INFOA : origin = 0x1980, length = 0x0080
INFOB : origin = 0x1900, length = 0x0080
INFOC : origin = 0x1880, length = 0x0080
INFOD : origin = 0x1800, length = 0x0080
FRAM : origin = 0x4400, length = 0xBB80
//FRAM_VAR : origin = 0x4400, length = 0xBB80
FRAM2 : origin = 0x10000,length = 0x14000
JTAGSIGNATURE : origin = 0xFF80, length = 0x0004, fill = 0xFFFF
BSLSIGNATURE : origin = 0xFF84, length = 0x0004, fill = 0xFFFF
IPESIGNATURE : origin = 0xFF88, length = 0x0008, fill = 0xFFFF
INT00 : origin = 0xFF90, length = 0x0002
INT01 : origin = 0xFF92, length = 0x0002
INT02 : origin = 0xFF94, length = 0x0002
INT03 : origin = 0xFF96, length = 0x0002
INT04 : origin = 0xFF98, length = 0x0002
INT05 : origin = 0xFF9A, length = 0x0002
INT06 : origin = 0xFF9C, length = 0x0002
