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/OMAP3530: Undocumented ARMHEX behavior changes between 16.9.6 and 18.1.1?

Part Number: OMAP3530

Tool/software: TI C/C++ Compiler

I'm having some trouble with the hex-file generation tools between versions of the compiler. I don't see anything in the documentation indicating that there are changes between these versions.

Somehow the base-address of the executable is being lost during translation.

I'm invoking the tool with

/ti/ccsv7/tools/compiler/ti-cgt-arm_18.1.1.LTS/bin/armhex.exe -map=st-app.map -a st-app.out -o st-app.hex -order MS -romwidth 32

If I build with 18.1.1.LTS, the first couple of lines of the hexfile look like:

$A0000,
00 40 2D E9 D1 6D 00 EB B7 70 00 EB 00 80 BD E8 00 00 72 87 00 00 80 00

(There is another line with a non-standard character to start the file. The A0000 address is *not* correct.

However if I run the 16.9.6 version of armhex.exe (same options) on the very same .bin file, I get:

$A84000000,
00 40 2D E9 D1 6D 00 EB B7 70 00 EB 00 80 BD E8 00 00 72 87 00 00 80 00

This is correct (or at least not obviously wrong).

Any thoughts?

John

  • Unfortunately, you are experiencing a bug in the hex utility.  When --ascii (or -a for short) is used, it only outputs the lower 16-bits of the address.  I can reproduce the problem.  I filed CODEGEN-4576 in the SDOWP system to have this investigated.  You are welcome to follow it with the SDOWP link below in my signature.

    Thanks and regards,

    -George

  • Thanks for the confirmation and filing the bug report. For the present time, I'll probably just replace the armhex executable with the older version.