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.

TMS320F28379D: Code will not fit into available memory - how to safely modify the linker command file?

Part Number: TMS320F28379D

I am working on an F28379D using driverlib. I am only interested in using CPU1. I have run into an issue of the ".text." section not fitting into the memory allocated by the linker command file. The areas of RAM allocated for text, namely RAMLS0, RAMLS1, RAMLS2, RAMLS3, RAMLS4 and RAMD0 are all showing 100% usage under the memory allocation tool. However, the RAM sections RAMGS0 through RAMGS15 are showing 0% usage.

Question 1 - Since most of the "GS" sections don't appear to be used for anything, can I simply append them to the .text allocation to allow text to fill up those blocks too? The first five appear to be used by the SDFM filter module.

Question 2 - If the "GS" sections can be used in this way, why are they not used by default? Are they set aside for CPU2 to use? This is the bit that worries me slightly as I don't want to expand into them if I'm going to break something! 

Question 3 - I can't seem to find the term RAMLS0 etc in either the Assembler of Compiler reference manuals. Is there a document anywhere that would help me to understand why the memory is broken up the way it is?

Thanks very much for your advice.

 

  • Hi,

    Question 1 - Since most of the "GS" sections don't appear to be used for anything, can I simply append them to the .text allocation to allow text to fill up those blocks too? The first five appear to be used by the SDFM filter module.

    Yes, you can do that.

    Question 2 - If the "GS" sections can be used in this way, why are they not used by default? Are they set aside for CPU2 to use? This is the bit that worries me slightly as I don't want to expand into them if I'm going to break something! 

    Linker cmd file provided is just for reference. User need to update this as per their need.

    Question 3 - I can't seem to find the term RAMLS0 etc in either the Assembler of Compiler reference manuals. Is there a document anywhere that would help me to understand why the memory is broken up the way it is?

    Assembler or compiler reference manuals are generic which is applicable to all the devices hence exact RAM block names are not used. We have different types of memory with different attribute which is mentioned in the device TRM (for example dedicated RAM, RAM shared between CPU and CLA, RAMs shared between both CPU subsystem). User need to use them based on what attributes of each RAM they are using.

    Regards,

    Vivek Singh