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/TMS320F28379D: Memory Map differences between the device User's Guide documentation and the example *.cmd files.

Part Number: TMS320F28379D
Other Parts Discussed in Thread: C2000WARE

Tool/software: TI C/C++ Compiler

Section 6.3 Memory, of the TMS320F28379D User's Guide contains the C28x Memory Maps.  

When the starting addresses of the User's Guide are compared to the contents of the example *.cmd files they differ quite a bit.

For example, the command file 2837xD_RAM_lnk_cpu1.cmd (from ~/ti/c2000/C2000Ware_1_00_01_00/device_support/f2837xd/common/cmd/) memory page 0 is setup as follows:

PAGE 0 :
/* BEGIN is used for the "boot to SARAM" bootloader mode   */
   BEGIN         : origin = 0x000000, length = 0x000002
   RAMM0         : origin = 0x000122, length = 0x0002DE
   RAMD0         : origin = 0x00B000, length = 0x000800
   RAMLS0        : origin = 0x008000, length = 0x000800
   RAMLS1        : origin = 0x008800, length = 0x000800
   RAMLS2        : origin = 0x009000, length = 0x000800
   RAMLS3        : origin = 0x009800, length = 0x000800
   RAMLS4        : origin = 0x00A000, length = 0x000800
   RESET         : origin = 0x3FFFC0, length = 0x000002

In the TMS320F28379D User's Guide, section 6.3.1 C28x Memory Map, the M0 RAM's start address is 0x00000000 and ending address is 0x000003FF.

Why isn't the RAMM0 line of 2837xD_RAM_lnk_cpu1.cmd set as follows?

RAMM0 : origin = 0x00000000, length = 0x000003FF

or the RAMD0 line set to to match what's in the User's Guide?

RAMD0 : origin = 0x0000B000, length = 0x00007FFF

Kindly,

Graham

  • Hi,

    Part of M0 RAM is used for stack by BOOTROM hence it has been define like this. If needed, you can change the cmd file to use all of M0 RAM.

    Regards,

    Vivek Singh
  • Thanks Vivek.

    Where can I find the correct (complete) memory map documentation? The memory map (section 6.3) in the User's Guide doesn't mention the memory location from 0x0000 to 0x0002 being reserved for the BOOTROM.

    Also, is the memory space between 0x0003 and 0x03FF available for M0? As written in the example *.cmd file it looks like 0x0003 and and 0x0121 is unused.

    Kindly,
    Graham
  • 0x0 to 0x2 is BEGIN section which is used for entry point incase of BOOT to RAM option is used. Space after that is used for stack. Memory map only shows the available memory and does not describe the SW usecase. Similarly cmd file in example code is just a sample and user can change it according to their need.

    Vivek Singh