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.

TMS320F28388D: CM SRAM memory map (in linker file) has holes in it.

Part Number: TMS320F28388D

In the file 2838x_flash_lnk_cm.cmd, which is the linker directive file that is included with the CCS tool chain, I see the following:

CMBANK0_SECTOR10 : origin = 0x00270000, length = 0x00004000
CMBANK0_SECTOR11 : origin = 0x00274000, length = 0x00004000
CMBANK0_SECTOR12 : origin = 0x00278000, length = 0x00004000
CMBANK0_SECTOR13 : origin = 0x0027C000, length = 0x00004000

C1RAM : origin = 0x1FFFC000, length = 0x00001FFF
C0RAM : origin = 0x1FFFE000, length = 0x00001FFF

BOOT_RSVD : origin = 0x20000000, length = 0x00000800 /* Part of S0, BOOT rom will use this for stack */
S0RAM : origin = 0x20000800, length = 0x000037FF
S1RAM : origin = 0x20004000, length = 0x00003FFF
S2RAM : origin = 0x20008000, length = 0x00003FFF
S3RAM : origin = 0x2000C000, length = 0x00003FFF
E0RAM : origin = 0x20010000, length = 0x00003FFF

Note how all the FLASH sectors have lengths that exactly fill up their range in memory until the next sector. However, the SRAM banks have lengths that are one byte short of being full, hence cannot be appended into one large SRAM block.

Was this intentional?? Does that mean that the ARM processor cannot do reads/writes across a SRAM bank boundary?

  • Hi Ray,

    Due to the US Holidays please expect a reply by January 4th.

    Best Regards,

    Marlyn

  • hi Ray ,

    No this is not intentional and there is no such limitation. It is an issue with the linker cmd file.

    The memories can take the length field till the boundary like the below RAMs should be of length 0x4000 .

    This will be corrected in the next release.

    Ray White1 said:

    S1RAM : origin = 0x20004000, length = 0x00003FFF
    S2RAM : origin = 0x20008000, length = 0x00003FFF
    S3RAM : origin = 0x2000C000, length = 0x00003FFF
    E0RAM : origin = 0x20010000, length = 0x00003FFF

    Regards.