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.

Compiler/AWR1843BOOST: linker setting

Part Number: AWR1843BOOST

Tool/software: TI C/C++ Compiler

please explain about Linker setting and teach how can i extend Program RAM

In "Technical Reference Manual", we have:

MSS_TCMA_ROM 0x0000_0000 0x0001_7FFF 128KiB MSS_TCMA_ROM (TCMA) Program ROM (refer to ROM Eclipsing section)
MSS_TCMA_RAM 0x0020_0000 0x07FF_FFFF 512KiB MSS_TCMA_RAM (TCMA) size varies based on device and DSS_L3 (L3) sharing options configured (refer to ROM Eclipsing section)
MSS_TCMB           0x0800_0000 0x0C1F_FFFF 192KiB MSS_TCMB (TCMB)
DSS_L3RAM          0x5100_0000 0x51FF_FFFF 2MB DSS_L3RAM (L3) shared memory space

In lab03 OD demo, we have r4f_linker.cmd as below 

/* Memory Map */
MEMORY{
VECTORS (X) : origin=0x00000000 length=0x00000100
PROG_RAM (RX) : origin=0x00000100 length=0x0003FF00
DATA_RAM (RW) : origin=0x08000000 length=0x00030000
L3_RAM (RW) : origin=0x51000000 length=0x000A0000
HS_RAM (RW) : origin=0x52080000 length=0x8000
}

- Why Program_RAM in "Linkder" overlap  ROM address in "Tech Ref Manual" ?
  Is this software run in ROM or RAM ?

- if I would like to load ROM from external flash and run in RAM, what is the correct setting?

- if my mss software overflow 512KB and I would like use L3 RAM for Program, could you please give me example ?

  • Hi Molin,

    I've asked my team to look into this and someone should have an answer for you in the next few days.

    Cheers,

    Akash

  • Hi Akash:

    thank you very much for your confirmation. looking forward to the answer!

  • Hello, sorry for the delay.

    >- Why Program_RAM in "Linkder" overlap  ROM address in "Tech Ref Manual" ?
      Is this software run in ROM or RAM ?

    Device ROM is accessed by the ROM bootloader only.  The bootloader handles the "eclipsing" (changing visibility from ROM to RAM) as a part of it's processing.  User software does not need to be aware of it and will see only RAM. 

    >- if I would like to load ROM from external flash and run in RAM, what is the correct setting?

    You will store your application(s) and program data (if any) to flash, not ROM.  If your code is in flash, it must be copied to RAM before it can execute. Data on the other hand can be written and read by the application at run time.

    >- if my mss software overflow 512KB and I would like use L3 RAM for Program, could you please give me example ?

    This is not likely as most, if not all, numerical processes will be on the DSP. The MSS R4F is used primarily for control, configuration and data passing.  If you did need more than 512KB, you would need to define program sections in L3 (using #pragma CODE_SECTION()), then page portions of this into TCMA as needed. This is because the R4F uses tightly coupled memories (TCMA/B) instead of Program and Data caches.

    I suggest following the linker examples provided in the demos, at least to get started and to get familiar with their workings before trying to tackle more complex configurations.

  • Hello TI:

    Thank you very much for replying.

    I get general ideas and I need to really play more with the demo by debugger.

    will take my part, so please close the ticket :)

    BR