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.

.sysmem and .esysmem

After recently reinstalling CCS4 to overcome an error introduced in an automatic update, I have been getting a linker warning:

"warning: creating output section ".sysmem" without a SECTIONS specification"

I have the heap size set in my linker options to 0x400.

I went hunting through the linker command file 28335_RAM_lnk.cmd and found .esysmem in SECTIONS, but not .sysmem.

Some posted examples I have seen on this forum have both .esysmem and .sysmem in SECTIONS with the same location. Can I simply add .sysmem to the linker command file? Should I have to? Have I missed something during the reinstall?

Peter.

  • The .sysmem and .esysmem sections both reserve space for dynamic memory allocation but .sysmem is used by malloc/calloc routines while .esysmem is used by far malloc functions (both versions are in the runtime support library).

    The C28x Compiler Users Guide documents these sections in detail.

    Peter Cusack said:
    Can I simply add .sysmem to the linker command file?

    Yes, you can and it is best to do so. If you don't the linker will do some default allocation and it may or may not be what you desire.

     

  • Thanks AartiG.


    I'm perplexed as to why the .sysmem section would disappear if it is required, but adding it to the linker command file did remove the warning.


    Peter.