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.

TMS320F28388D: Fill Space Differences in ARM Images

Part Number: TMS320F28388D

Greetings,

On the ARM core, when using CCS to burn an image, I am seeing the contents of unused space varying, sometimes being 0x00, and sometimes being 0xFF.  This presents an issue for us in that the image does not match that which is generated using the ARM Hex Utility which is filling all unused areas with 0xFF.  Is there any way to make CCS burn the image and always use 0xFF for the blank spots?

Thank you,

Ed

  • BTW, when CCS loads the C2000 cores, the empty spaces are filled with 0xFF.  I don't know if it makes a difference, but we are using the COFF output for the C2000 side and the EABI on the ARM side.

    Thank you,

    Ed

  • Hello Ed,

    Are you using RAM or Flash? By default, unless the Flash has been programmed previously, the Flash should be erased (all F's in hex). If you want this to be in a set state at the beginning of your program you will need to erase the Flash via the Flash API. If you have programmed this device previously, there may be 0's in memory.

  • Hi Omer,

    Sorry, should have been more specific.  CCS is loading the code into flash.  I can see CCS doing the erase as expected.  But when the new image is loaded, the unused space between sections is 0.  This is only true for the ARM core.  The loading for the C2000 core leaves the unused space as Fs.

    Thank you,

    Ed

  • Hello Ed,

    I'm not familiar with how the Flash for the ARM core is handled on this device, let me reach out to another expert and get back to you once I have an answer.

  • Hi Ed,

    I am asked to review this.

    CCS does not program any unused space.  It programs only the flash locations that are part of the provided image.

    I can analyze this further if you could provide some more info:

    1) Could you clarify about unused space:  Do you mean unused space within an aligned 128-bit flash memory that is partially used by the application?  Or unused addresses beyond the partially used aligned 128-bit memory ranges?  

    2) Do you use directives like palign() or fill etc. in your linker command file to fill unused space with some constant data?

    Thanks and regards,
    Vamsi

  • Hi Vamsi,

    1)  The unused space to which I was referring is the space between sections.  The alignment seems to make no difference.  We are using the TI-TXT output, and I simply observed that the sections in it correspond to those in the cmd file.  When one ends, there is an @<new address> construct which marks the beginning of the next one.  Between the end of the data in the previous section and the new address, the space will be filled with 0s.

    2)  I use an align directive, where appropriate, in assembly files.  I have not be able to find information for a fill directive for the cmd files.  Where should I be looking?

    Thank you,

    Ed

  • Hi Ed

    I can review and get back to you on wednesday.

    I am out of office currently.

    Thanks and regards,

    Vamsi

  • Hi Ed,

    1) Do you observe the same if you load the .out instead of TI-TXT output?

    2) If you don't have any "fill" in your linker command file, you are not using it.

    Thanks and regards,
    Vamsi

  • Hi Vamsi,

    Sorry for the delayed response.  I thought I had answered this.

    1)  I observe this when using the .out file.  I didn’t know there was a way to load the TI-TXT output using CCS.  We use it to make our final image.  That process fills the empty space with 0xFFs.

    2)  The only fill I can find for the linker cmd file fills empty space within a section, not between sections which is where I am observing this.

    Thank you,

    Ed

  • I believe I have it fixed.  I found the fill instruction, and used that.  Now it is adding FFs to the bytes between sections.

    Thank you,

    Ed