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.

TMS570LS31HDK RAM

Other Parts Discussed in Thread: HALCOGEN

Hi,

I need some explanation about RAM.

  • 3MB of Program Flash with ECC: I assume that's reserved to the program itself and can be access only by the Jtag emulator
  • 256KB of RAM with ECC: this is the standard memory for system buffer and so. There are some limitation in using it or program can I simply allocate until the sum is 256KB? Can the program have some "advise" if running out of space?
  • 64KB of Flash with ECC for Emulated: what about this one?
  • 8MB SDRAM on the HDK. This can be used through EMIF. Right?

Perhaps that's a trivial question but ... thanks for help.

Matteo




 


  • Hello Matteo,

    I have forwarded  your question to one of our experts and they will respond soon.

  • Hi Matteo,

    I am not sure I understand your question correctly.

    There is 3MB of flash memory, which is tightly coupled to the Cortex-R4F CPU. This is referred to as ATCM in ARM's technical reference manual for the R4F CPU.

    256KB of RAM is also tightly coupled to the R4F CPU. This is referred to as BTCM in ARM's reference manual for the R4F CPU.

    There is 64KB of flash memory which can only be used for data storage (code execution is not supported from this memory). You need to use the API provided by TI in order to erase/program this memory.

    The LS31x/21x/12x/11x MCUs also support an EMIF, which can be used to interface an external SDRAM or asynchronous memory. Even if code execution is theoretically possible from external memory, it will be prohibitive in terms of system performance.

    Regards, Sunil

  • Hi Sunil,

    you've perfectly understood my question, it's trivial as it seems!

    In a "plain" use, the program size limit is 3Mb and the data size limit is 256Kb. Right?

    All the 256Kb are simply accessible in standard allocation ( uint8 data[size] ) or there's some other trick? There's some limit for the single data chunk (can I do uint8 data[262144])?

    How to check the program size? It's simply the '.out' binary size?

    Which API are referrimg about the 64Kb flash memory?

    Thank you

  • Matteo,

    The 3MB flash is typically used to hold a bootloader, the application program and constants.

    The 256KB RAM is mainly used as the CPU's data RAM. It is typically also split into multiple sections (or regions) that hold temporary data specific to the modules being used. There is certainly an area allocated for the CPU stacks. There could also be ranges allocated for holding data to be transferred using DMA, etc.

    The program size is reported in the project map file that is generated by the CCS compile tools.

    The API that allows you to erase and program the 64KB flash bank is included as part of HALCoGen. You need to "Enable FEE Driver" from the "driver enable" tab.

    Regards, Sunil