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.

RTOS/TMS320F28379D: GSRAM for .ebss

Part Number: TMS320F28379D

Tool/software: TI-RTOS

Hi,

Is it possible to locate .ebss section within GSRAM? Why yes or not?

Thanks!

Best regards,

Adria

  • Adria,

    Yes, GSRAM can be allocated in the .ebss section.

    Keep in mind that using GSRAM .ebss may have global variables, it's better to use the local RAMs for .ebss section as some of the allocated sections may cause issues if the ownership of shared RAM block is to CPU2.

    Here is a forum post that explains a situation where using GSRAM in .ebss caused issues.
    e2e.ti.com/.../1791385

    See SPRU514R section 7.1.1 for more information on .ebsss and GSRAM.

    C2000 Linking: processors.wiki.ti.com/.../C28x_Compiler_-_Understanding_Linking

    Regards,
    Ozino
  • Hi Ozino,

    As this uC has a lot of GSRAM and not much dedicated RAM I am placing .ebss setion within GSRAM. In fact it is the only place where it fits. My .ebss section takes around 14Kwords and the project is not finished yet, so it might becomes greater.

    M0 and M1 RAM have 1758 available words, because they store BOOT_RSVD section.

    D0 and D1 RAM have 4096 words available.

    L0, L1, L2, L3, L4 and L5 RAM have 12288 words available.

    GS from 0 to 15 RAM have 65536 words available.

    As you can see, GSRAM is the only RAM section able to allocate my .ebss section.

    The problem which made me start this thread is that when I locate the .ebss within GSRAM then execution never even reaches my main(). It gets aborted somewhere before. I use SYS/BIOS and run my code only in CPU1, so I have both write and execution permission for GSRAM.

    Any idea of what is going on?

    Best regards,

    Adria

  • Hi team,

    could you please have a look at this post?

    Thanks a lot in advance.

    Best regards,
    Massimiliano.
  • Adria,

    Are you getting any warning during compilation of the code?
    Can you attach your linker cmd file.

    Vivek Singh
  • Hi Vivek,

    This morning I solved the problem: as I needed a part of GSRAM for shared RAM and another part to allocate .ebss, I had divided GSRAM into 2 different sections and the problem is that I was only assigning one of them to "Filter_RegsFile" because of a little forgetfulness. Once changed that, I had another new problem in execution time and it fortunately it ouput a message by console. It said that the stack from a Task must be located below RAM address 0x10000, which is the start address of GS4 RAM. Then I moved .ebss within GSRAM sectors from 0 to 3 and it worked.

    Best regards,

    Adria