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: What does that mean?

Part Number: TMS320F28379D

Hi Team,

I want to know how to use available memory and assign it to certain section in linker Command file?

my compiler says like

warning: creating output section ".bigCode" without a SECTIONS specification
warning: creating output section ".isl_registers" without a SECTIONS
specification
error: program will not fit into available memory. placement with
alignment/blocking fails for section ".bigCode" size 0xe4 page 0. Available
memory ranges:
BEGIN size: 0x2 unused: 0x0 max hole: 0x0
RAMM0 size: 0x2de unused: 0x0 max hole: 0x0
RAMLS0 size: 0x800 unused: 0x0 max hole: 0x0
RAMLS1 size: 0x800 unused: 0x1 max hole: 0x1
RAMLS2 size: 0x800 unused: 0x0 max hole: 0x0
RAMLS3 size: 0x800 unused: 0x0 max hole: 0x0
RAMLS4 size: 0x800 unused: 0xc1 max hole: 0xc1
RAMD0 size: 0x800 unused: 0x1 max hole: 0x1
RESET size: 0x2 unused: 0x2 max hole: 0x2
error: errors encountered during linking; "can_external_transmit_cpu01.out" not
built

>> Compilation failure
makefile:166: recipe for target 'can_external_transmit_cpu01.out' failed
gmake: *** [can_external_transmit_cpu01.out] Error 1

Lets say I want to create new section named as bigCode which I have already defined in my codes using "#pragma"

Please guide me on how to allocate a memory for this section. 

Thanks,

Akshay Godase

  • Hi Akshay,

    You are using region related symbols to place part of your code into a specific region of program memory. You use the CODE_SECTION pragma to do this for each function you want to place, so you might have something like this for the fictional function "func()":

    #pragma CODE_SECTION(func, "bigCode")

    All this is doing is associating the name "bigCode" with the function, so we can use it in a linker command file. You can associate multiple functions with the same section name this way.

    In the SECTIONS part of your linker command file, you would allocate this named section to a block of physical memory. It looks from the error message that you don't have a block in page 0 large enough to hold the code you want to map, so you'll need to allocate one. For example, assuming RAMGS9 was available you could do this:

    MEMORY
    {
    PAGE 0 :
    RAMGS9 : origin = 0x015000, length = 0x001000

    ...
    }

    SECTIONS
    {
    bigCode : > RAMGS9, PAGE = 0

    ...
    }

    BTW, "bigCode" and ".bigCode" are different names; you don't need the dot at the start.

    There's more information in chapter 6 of the C compiler guide, here:
    www.ti.com/.../spru514r.pdf

    Hope this helps. Post back if anything's unclear.

    Regards,

    Richard