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.

run placement fails for object ".sysmem"

Other Parts Discussed in Thread: MSP430F2274, SIMPLICITI

Hi, I am developing for ez430-rf2500 (MSP430f2274) using CCSv4. I get the error "run placement fails for object ".sysmem", size 0x50 (page 0).  Available ranges: RAM          size: 0x400        unused: 0x26         max hole: 0x26 tx line 0 1290898956063 227". I am just using mrfi.c from the SimpliciTI library and an additional 500 lines of code. I'm sure this should fit into memory. I am not experienced with compilers, but it seems as if the compiler is trying to place everything into RAM (only 1 KB). Is it possible to place code in flash memory? The MSP430f2274 has 32 KB flash memory.

  • The error message is saying that it failed to allocate the section ".sysmem" (which is used for heap) in the available memory space in RAM. The linker command file specifies the memory ranges for the device and the allocation of sections into memory regions. As you can see, the default linker command file for MSP430F2274(lnk_msp430f2274.cmd) allocates .bss, .sysmem, .stack and .cio sections to RAM. These are uninitialized sections and should be allocated to RAM, not FLASH. These sections and their contents are described in the MSP430 C/C++ Compiler Users Guide.

    The link map file generated as part of the link step when building your program will show you the size of the different sections. You would need to make sure that the above sections are all able to fit within the available RAM for this device. The size of the .stack and .sysmem sections can be controlled via the -stack and -heap linker options, but note that some applications may require a minumum amount of stack and heap size to operate properly.