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/TMS320F28075: Left-Justified Addresses in HEX files generated by CCS?

Part Number: TMS320F28075

Tool/software: Code Composer Studio

I am trying to use a HEX file (generated by CCSv6) to reprogram flash during runtime.  My problem is that in the 28075, the flash can only be written left-justified to a 64-bit boundary; that is, the address must end in 0 or 8.  The HEX files that CCS generates do not always provide the data in left justified format (see below excerpt from my HEX file).  Is there any way to tell CCS to produce a HEX file that always starts at a 64-bit boundary?  If not, does TI have a recommended workaround for the 28075, whose flash must be programmed left-justified?

Thanks,

Justin

:204E00008CE29A00FE860006FE021E42761F02380E0C1EAC56650042A9420642EC09064280    [Addr: 4E00] (All along here, the addresses end in '0', which is left-justified)
:204E1000EC0A0201564100420642EDFC6F0428A901F46F029A00FE82FF690006FE028F08B6      [Addr: 4E10]
:204E2000200006C41E428F08210006C41E428F08220006C41E428F08230006C41E4202017C      [Addr: 4E20]
:204E300076408DC4FE820006FE041E428748290156440042FF451E44764086A00644FE8450       [Addr: 4E30]
:204E400000060000000000000000000000000000000000000000000000000000FE041E44E8          [Addr: 4E40]
:204E5000A842064207448AA9924876408CB4FE840006761F02388A04D02A4894EF039A017A      [Addr: 4E50]
:124E60006F029A020006761F02388A04D02A0694000636                                                                           [Addr: 4E60]
:204E6C00B2BD59A99B019A015CA176489D14761F02B692A1743A8BBE00069A019B017648A0    [Addr: 4E6C]    (Starting here, the addresses end in 'C' this means it's not left-justified to a 64-bit boundary)
:204E7C009D209A3A76484E6C9A312B3A76484E6C9A3076484E6C923F76484E6C761F02B78C     [Addr: 4E7C]
:204E8C009200FFC376489C9976484E6C761F02B7CC00000F76489C9976484E6C0006761F18       [Addr: 4E8C]
:204E9C0002B6B2BDCC3A00FF59A9FFC376489C9976484E6C92A1900F76489C9976484E6C5E     [Addr: 4E9C]
:204EAC009A0D76484E6C9A0A76484E6CD0228F00C24656BF01942B0656BF010356BFC8044D     [Addr: 4EAC]
:204EBC008BBE0006B2BD761F02A3592E761F02B656BF5A3F761F02B556BF092B761F02B779       [Addr: 4EBC]

  • Justin Gullotta said:
     Is there any way to tell CCS to produce a HEX file that always starts at a 64-bit boundary?

    I can't see a command line option to the Hex Utility to ensure that a HEX file starts at a 64-bit boundary.

    A work-around may to use the palign operator in the linker command file to specify that the sections which are placed in flash required 8 byte alignment and padding. If the linker has aligned and padded the sections in flash to 8 bytes, that means the output from the HEX utility should be aligned to a 64-bit boundary.

    See the Alignment With Padding section for details of the palign operator.