• Resolved

Intel-Hex file missing pointers in interrupt vector table

I'm trying to use the post build step to create an Intel Hex file.  I'm linking my program's start address at 0x1000 to allow use with a boot loader.  It seems to work except the output appears to be missing the pointer in the interrupt vector table.  To create the intel hex output I used the "Create flash image: Intel-HEX" in the Post Build Step.  The start of my file is as below.

:201000000020000000000000000000000000000000000000000000000000000000000000B0
:20104000000000000000000000000000000000000000000000000000000000000000000090
:20108000000000000000000000000000000000000000000000000000000000000000000050
:2010C000000000000000000000000000000000000000000000000000000000000000000010
:0E1100000000000000000000000000000000E1
:20111C00ADF101930220011000006FF302900000029900EB039040F206F00698A0B9010021
:20115C000BD100000520F0F90220ECF94DE105F00220069801289180010037D180684FEA3B
To me the vector table appears to be there but all the pointers are 0.

If I select "Create flash image: TI-TXT" the output seems to contain the correct table at the beginning.
@1000
08 14 00 20 99 85 00 00 EB 42 00 00 1B 2B 00 00 
8F 41 00 00 8F 41 00 00 8F 41 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 8F 41 00 00
8F 41 00 00 00 00 00 00 8F 41 00 00 5D 66 00 00
8F 41 00 00 8F 41 00 00 8F 41 00 00 E9 79 00 00
8F 41 00 00 FD 5F 00 00 8F 41 00 00 8F 41 00 00
8F 41 00 00 8F 41 00 00 8F 41 00 00 8F 41 00 00
8F 41 00 00 8F 41 00 00 C3 84 00 00 CD 84 00 00
D7 84 00 00 E1 84 00 00 8F 41 00 00 8F 41 00 00
8F 41 00 00 8F 41 00 00 8F 41 00 00 8F 41 00 00
8F 41 00 00 8F 41 00 00 8F 41 00 00 8F 41 00 00
8F 41 00 00 8F 41 00 00 8F 41 00 00 8F 41 00 00
8F 41 00 00 8F 41 00 00 8F 41 00 00 8F 41 00 00

Anybody else run into this?
Oh yeah I'm using CCS4 and my project is on the Stellaris ARM processor.
Thanks in advance.
  • Guru 135060 points

    Glen,

    Would you be able to provide us with your .out file so we can try to reproduce this? If so, please attach it to this thread or if you prefer you can send it to us via private conversation. Also please let us know what the full command line is for both the conversion to Intel hex and to TI-TXT so we can make sure to use the same options.

    ____________________________________________________________________________

    Search the wikis for common questions: CGTCCSv6
    Track a known bug with SDOWP. Enter the bug id in the "Find Record ID" box

  • In reply to AartiG:

    The site didn't seem to allow ".out" files so it is in the attached zip file.

    I used the predefined steps.

    The command to produce the TI-TXT output.

    "${CG_TOOL_ROOT}/bin/hex${CG_TOOL_SUFFIX}.exe" --ti_txt "${BuildArtifactFileName}" -o "${BuildArtifactFileBaseName}.txt" -order MS -romwidth 16

    The command to produce the Intel-HEX output.

    "${CG_TOOL_ROOT}/bin/hex${CG_TOOL_SUFFIX}.exe" -i "${BuildArtifactFileName}" -o "${BuildArtifactFileBaseName}.hex" -order MS -romwidth 16

  • Guru 135060 points

    In reply to GLEN PANKEY:

    GLEN PANKEY

    The site didn't seem to allow ".out" files so it is in the attached zip file.

    The zip file was not attached. Could you please reattach? Thanks!

    ____________________________________________________________________________

    Search the wikis for common questions: CGTCCSv6
    Track a known bug with SDOWP. Enter the bug id in the "Find Record ID" box

  • In reply to GLEN PANKEY:

    Hopefully that worked.

  • Guru 135060 points

    In reply to GLEN PANKEY:

    Glen,

    When you use the -romwidth 16 option with the Intex hex format, you should see 2 resulting hex files, each containing 16 bits of each word. If you'd like a single hex file, use the -romwidth 32 option. The number of output files depends on the memory width (of the target memory system) and ROM width specified. The default memory width for ARM is 32 bits and so when you specify a rom width of 16, you get 2 output files. Details are in the TMS470 Assembly Language Tools Users Guide, chapter 11.

    For the TI-TXT format, the memory width and ROM width cannot be changed, which results in a single file output regardless of what is specified in the -romwidth option. Hope this helps clarify.

    ____________________________________________________________________________

    Search the wikis for common questions: CGTCCSv6
    Track a known bug with SDOWP. Enter the bug id in the "Find Record ID" box

  • In reply to AartiG:

    AartiG,

    That fixed it.  I should have dug deeper.   I just selected the predefined step to create an Intel hex file and it was set at 16 bits wide.  As a side note it also didn't create 2 files it only created 1.  Doesn't matter I'm up and working with the width set to 32 bits.

    Thanks for your help.

    Glen