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.

Compiler/TMS320F28388D: How come the ARM hex utility and the C28x hex utility differ in the byte order of the "meta-data" bytes in a boot table?

Part Number: TMS320F28388D

Tool/software: TI C/C++ Compiler

Hi,

The C28x hex utility has the starting key bytes, entry point address bytes, block size bytes, and block starting address bytes of a binary boot table in little endian byte order. A boot table produced by the ARM hex utility has those same bytes but in big-endian byte order. Thankfully, the actual application data bytes are in the same little-endian byte order for both hex tools.

I would like to know why this is the case and if it is possible to change the byte order of the "meta-data" bytes (particularly for the ARM hex utility).

Sincerely,

Howard Li

  • Howard Li 2 said:
    I would like to know why this is the case

    I'm not completely certain.  But I am confident the hex utility matches what is required by the built-in boot loader on those devices.

    Howard Li 2 said:
    and if it is possible to change the byte order of the "meta-data" bytes (particularly for the ARM hex utility).

    I have not found a way to change the byte order. Please describe, in as much detail as possible, the problem you want to solve.  I'm sure we can find a way to solve it.

    Thanks and regards,

    -George

  • When using a hex editor such as HxD to view the hex files, the boot table produced by the C28x hex utility has the key bytes in the order AA 08 as to be expected in little-endian byte order. However for a boot table produced by the ARM hex utility the bytes are in the order 08 AA which is the same value if read in big-endian byte order.

  • I suspect those byte orders are required by the boot loaders on C28x and ARM devices.  However, I have yet to find the documentation which makes this clear.  I'll get back to you on that.

    Thanks and regards,

    -George

  • I apologize for the delay.

    For C28x, the initial bytes in the boot table are as specified in the TMS320F2838x Microcontrollers Technical Reference Manual, in the sub-chapter titled Application Notes for Using the Bootloaders.  For ARM, despite an extensive search, I have been unable to find similar documentation.  

    Howard Li 2 said:
    if it is possible to change the byte order of the "meta-data" bytes (particularly for the ARM hex utility)

    It is not.  In the ARM hex utility, these bytes are always written in big endian order, and there is no method to change that order.

    Thanks and regards,

    -George