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.

Memory Map with CC3000

Other Parts Discussed in Thread: MSP430F5438A, MSP430F5438

I am trying to port the host driver onto the MSP430f5438a.  I have already gone through and changed all the pins for the SPI, interrupts, etc, to ones that will work with the MSP430f5438a.  However, now I would like to change the memory map to give the 5438a non volatile memory.  I forgot to change the memory map, compiled, and got this error:

#10247-D creating output section ".FRAM_DATA" without a SECTIONS

I have added a FRAM_DATA (misnomer) to the lnk_msp430f5438.cmd file (shown below).  However, I still get the error.  What am I missing?  The only place I could find the text "FRAM_DATA" was in this file and the original linker for 5739.  Where else is this specified?  Any help is appreciated,

Thank you

/****************************************************************************/
/* SPECIFY THE SYSTEM MEMORY MAP */
/****************************************************************************/

MEMORY
{
SFR : origin = 0x0000, length = 0x0010
PERIPHERALS_8BIT : origin = 0x0010, length = 0x00F0
PERIPHERALS_16BIT : origin = 0x0100, length = 0x0100
RAM : origin = 0x1C00, length = 0x4000
INFOA : origin = 0x1980, length = 0x0080
INFOB : origin = 0x1900, length = 0x0080
INFOC : origin = 0x1880, length = 0x0080
INFOD : origin = 0x1800, length = 0x0080
FLASH : origin = 0x5C00, length = 0xA380
FLASH2 : origin = 0x10000,length = 0x30000 // was 0x35C00
FRAM_DATA : origin = 0x40000,length = 0x5C00 // didnt exist
  • The linker command file has at least 2 components.  A declaration of available memory segments which is what you have shown above and secondly, a SECTIONS component which allows you to map (allocate) named sections within your C source files/assembly source files and allocate them to specific MEMORY segments declared in the MEMORY component.

    In your example above, the ".FRAM_DATA" is a named section which you need to add a statement in the SECTIONS portion of the linker command file that allocates this named section to a particular memory segment.  Something like below.  What you need specifically you will need to tailor accordingly.  I'm simply giving you an example to work from.

    SECTIONS
    {
      .FRAM_DATA : {} > RAM
    }

  • Brandon,

    There is really no reason why you would need to specify a special section for the CC3000. SImply remove those commands to place it in a section and place those buffers in regular RAM. Use the linker file provided by default and not a special one.

    The sections were done in the FRAM because the SRAM in the FR573x is limited to 1kB and the CC3000 needed more than that, so the unified architecture of the FRAM was used. In any other case you'd just allocate those buffers in RAM. In cases where the MSP430 has a small memory, you can reduce those buffers.

    Regards,
    Gustavo