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.

TMS320f28377D linker command file for larger buffers

Other Parts Discussed in Thread: TMS320F28377D

Hi Team.

I have a problem. I am doing source code for a customer which wants to test the ADC in TMS320F28377D, using the cpu1 only.

The customer want to do 2 * 8192 samples, store the results in 2 buffers.

To do this i wrote some code, and used the 2837x_FLASH_lnk_cpu1.cmd linker file.

I get an error:

"../2837x_FLASH_lnk_cpu1.cmd", line 85: error #10099-D: program will not fit into available memory. run placement with alignment/blocking fails for section ".ebss" size 0x204b page 1. Available memory ranges:

RAMLS5 size: 0x800 unused: 0x7f8 max hole: 0x7f8

RAMGS0 size: 0x1000 unused: 0x1000 max hole: 0x1000

RAMGS1 size: 0x1000 unused: 0x1000 max hole: 0x1000

error #10010: errors encountered during linking; "ADC testing.out" not built

It seems like the TMS320F28377D should have more than enough RAM to do this, so I expect the problem is the linker command file setup (2837x_FLASH_lnk_cpu1.cmd)

I tried looking for solutions and found this:

http://processors.wiki.ti.com/index.php/C28x_Compiler_-_Understanding_Linking

But it seems like this page is no longer available (or not working).

Could you help with a linker command file that would make the larger buffers work?

Thanks in advance for your help.

 

BR

Anders Lange

  • Hi.I did figure it out myself:
    RAMGS0 : origin = 0x00C000, length = 0x0010000
    //RAMGS1 : origin = 0x00D000, length = 0x001000
    //RAMGS2 : origin = 0x00E000, length = 0x001000
    //RAMGS3 : origin = 0x00F000, length = 0x001000
    //RAMGS4 : origin = 0x010000, length = 0x001000
    //RAMGS5 : origin = 0x011000, length = 0x001000
    //RAMGS6 : origin = 0x012000, length = 0x001000
    //RAMGS7 : origin = 0x013000, length = 0x001000
    //RAMGS8 : origin = 0x014000, length = 0x001000
    //RAMGS9 : origin = 0x015000, length = 0x001000
    //RAMGS10 : origin = 0x016000, length = 0x001000
    //RAMGS11 : origin = 0x017000, length = 0x001000
    //RAMGS12 : origin = 0x018000, length = 0x001000
    //RAMGS13 : origin = 0x019000, length = 0x001000
    To create one huge sector to store the buffers.
    Share RAM has been removed from the linker, as this project is only running on CPU1
    BRAnders