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.

XDCtools: Differences in linker file generation between 28069 and 28075

Other Parts Discussed in Thread: TMS320F28075

I'm in the process of porting a TI-RTOS project from a 28069m device to a 28075. 

On the 28069m, I managed my linker file manually. After converting over to the 28075 though, I'm finding a linker file is getting generated at PROJECT_LOC/Debug/configPkg/linker.cmd. The autogenerated file conflicts with the memory sections defined in my custom linker file, and breaks the build.

I'm working around this for now by defining the following in my CFG file:

Program.linkTemplate = "../TMS320F28075.cmd";

Is there a better way of doing this? Auto-generating the linker file would be pretty nice if it could split my code across memory sections and automatically handle the peripheral addresses. Is that possible for this platform?

If not, is there a more convenient way to disable autogeneration so I don't have to disable my linker file from the build? It will make build configurations difficult.

Thanks,

Grant

  • Actually, it looks like the generated linker file also has critical settings for the rest of the project to link with TI-RTOS, and my workaround breaks everything.

    The offending section present in linker.cmd is as follows:

    .ti_catalog_c2800_initF2837x_flashfuncs : LOAD = FLASHA_N, PAGE = 0, RUN = D01SARAM, PAGE = 0, table(BINIT)

    Is there any way to prevent this section from getting generated?

  • Hi Grant,

    What version of TI-RTOS or SYS/BIOS are you using?

    That section is for the function to configure flash wait states, where it is loaded from (flash) & where it should be executed from (RAM).  This is configurable in the application cfg file via the Boot module, so you can place it in an area where it won't conflict.  This can be done using the graphical configuration:

    Or by textually adding the following to your config file:

    var Boot = xdc.useModule('ti.catalog.c2800.initF2837x.Boot');
    Boot.loadSegment = "FLASHA PAGE = 0";
    Boot.runSegment = "M01SARAM PAGE = 1";

    Hope this helps,

    -- Emmanuel

  • This is rather strange.. Boot.loadSegment was not present in my .cfg file. When I opened the boot options page in XGCONF, it reset everything on that page to defaults, and changed a bunch of settings. I'm guessing XGCONF is not the most stable?

    That at least got it working though.
  • On some strange occasions it may bug out, but it is usually pretty stable. In my case, I almost always forget to save the file.

    Glad to hear you got it working again.

    -- Emmanuel
  • Oh, and for posterity of this thread, my configuration is as follows:
    CCS version: 6.1.0.00104
    TI-RTOS version: 2.12.1.33
    XDCtools version: 3.31.0.24_core
    Compiler: C2000 6.4.4
    RTSC target: ti.targets.C28_float
    RTSC platform: ti.platforms.tms320x28:TMS320F28075

    Thanks again for your help Emmanuel.