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.

CCS/TMS320C5517: C5517 bootloader external EPROM support

Part Number: TMS320C5517

Tool/software: Code Composer Studio

Hi there,

I'm using a C5517 device, connected to an external EPROM via EMIF (CS2 @ 0x400000-0x5fffff).
The project is using DSP-Bios 5.42.2.10, 16 bit NOR flash boot mode.

The project binary image generated by TI hex55 is stored at beginning of EPROM.

In the project I would like to define an inizialized vector located on EPROM, address it directly within the application.
As a test I defined the vector charcoord, initializing it as follow

#pragma DATA_SECTION(charcoord, ".extdata");
Uint16 charcoord[10]={0,1,2,3,4,5,6,7,8,9};

where .extdata is a section defined at address 0x500000, external EPROM.

Compiling the project I see from the .map file that the .extdata section is not inizialized:

.extdata 0 [ 00a00000 ] 00500000 * 0000000a UNINITIALIZED
[ 00a00000 ] 00500000 * 0000000a Main.obj (.extdata)

Moreover the TI hex55 utility returns the following report:
Translating .\..\Debug\ReporterNextTest.out to Binary format...
".\..\Debug\ReporterNextTest.out" ==> .bios (BOOT LOAD)
".\..\Debug\ReporterNextTest.out" ==> .switch (BOOT LOAD)
".\..\Debug\ReporterNextTest.out" ==> .sysinit (BOOT LOAD)
".\..\Debug\ReporterNextTest.out" ==> .trcdata (BOOT LOAD)
".\..\Debug\ReporterNextTest.out" ==> .data (BOOT LOAD)
".\..\Debug\ReporterNextTest.out" ==> .gblinit (BOOT LOAD)
".\..\Debug\ReporterNextTest.out" ==> .const (BOOT LOAD)
".\..\Debug\ReporterNextTest.out" ==> .args (BOOT LOAD)
".\..\Debug\ReporterNextTest.out" ==> .trace (BOOT LOAD)
".\..\Debug\ReporterNextTest.out" ==> .text (BOOT LOAD)
".\..\Debug\ReporterNextTest.out" ==> .cinit (BOOT LOAD)
".\..\Debug\ReporterNextTest.out" ==> .hwi_vec (BOOT LOAD)
".\..\Debug\ReporterNextTest.out" ==> .fastcode (BOOT LOAD)
Done.
where the .extdata section containing charchoord[10] seems to be skipped.


Is there a way to let the vector charcoord be inizialized in the project to the defined values straight on the EPROM?
In other words, the .extdata section should be actully allocated on binary image, and programmed to the EPROM by means
of the TI JTAG "programmer" utility ?

  • Hi,

    I've notified the sw team. Their feedback will be posted here.

    Best Regards,
    Yordan
  • I'm still waiting for E2E answer: too much time has elapsed.
    This issue is urgent .
    Please reply promptly.
  • You need to write ...

    const Uint16 charcoord[10]={0,1,2,3,4,5,6,7,8,9};  // add const

    When you write ...

    Stefano Carlesi said:
    #pragma DATA_SECTION(charcoord, ".extdata");
    Uint16 charcoord[10]={0,1,2,3,4,5,6,7,8,9};

    The compiler presumes charcoord will change during execution.  So it puts it in an uninitialized section named .extdata.  And it puts records in the .cinit section that, when processed at boot time, copy those initial values into .extdata.  By adding const, the compiler knows charcoord does not change during execution.  So it makes .extdata an initialized section with those values in it.

    Thanks and regards,

    -George