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.

TM4C1290NCPDT: TM4C1290NCPDT

Part Number: TM4C1290NCPDT

Tool/software:

I’m working on a project that involve the TI microcontroller TM4C1290NCPDT and I’m using the CodeComposerStudio  Version: 12.8.0.00012.

I need to create the .hex file as a build product but I’m facing a problem probably due to a bad configuration:

the hex file created has too much flash blocks separation and 96byte jump between each block:

………..

 

but the .cmd linker file (.txt file attached here – file extension changed due to email restrictions) has only 4 flash blocks described:

 

In order to create the .hex file product I set up the following options in CCS:

  1. Enabled Arm Hex Utility:


  2. Specified output file name:


  3. Set output format Intel hex:


These are the linker settings:

  

 

This is the building log:

 

 

I can’t understand the warnings.

 

Could you please help me to solve this issue?

  • Hi,

      I think you need to use --romwidth 32 and --memwidth 32 flags so only one hex file is merged and produced. Refer to TI Arm Assembler user's guide for details. If this does not solve your problem, I will forward your question to our toolchain experts. 

  • Hi Charles,

    thanks so much for the hint. This resolved my issue on the hex file.


    I'm still experiencing the warnings on the .elf creation:

    warning: section BIC1100SP18TD3BL2220vectoritaly.elf(.text) was padded by 2 to a size of 198400 to satisfy the specified memory width of 4
    warning: section BIC1100SP18TD3BL2220vectoritaly.elf($fill000) at 030906h overlaps BIC1100SP18TD3BL2220vectoritaly.elf(.text) (BIC1100SP18TD3BL2220vectoritaly.elf($fill000) incomplete or skipped)

    Have you any idea about it?

    Thanks.

    Best regards.

    Diego Greco

  • Hi,

     I think the warning is that the toolchain (the linker) is trying to align the text section to a 32-bit address and therefore adding whatever number of padding it sees fit. I'm not an linker expert and I will forward your question to our toolchain experts for further clarification. 

  • Despite the warnings, I think the hex file will work.  Does it?

    Please attach the linker command file to your next post.  So it will be accepted, please add the file extension .txt.  

    Thanks and regards,

    -George

  • Hi George,

    yes, the .hex file is correct now. 
    I would like to solve also the remaining warning in order to avoid any malfunctions.

    3515.tm4c1290ncpdt.txt
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    /******************************************************************************
    *
    * Default Linker Command file for the Texas Instruments TM4C1290NCPDT
    *
    * This is derived from revision 15071 of the TivaWare Library.
    *
    *****************************************************************************/
    --retain=g_pfnVectors
    MEMORY
    {
    FLASH (RX) : origin = 0x00000000, length = 0x000eff00, fill = 0xFFFFFFFF
    SOFT (RX) : origin = 0x000eff00, length = 0x000000f8, fill = 0xFFFFFFFF
    CRC (R) : origin = 0x000efff8, length = 0x00000008, fill = 0xFFFFFFFF
    TEXT (R) : origin = 0x000fc000, length = 0x00002000
    SRAM (RWX) : origin = 0x20000000, length = 0x0003ef00
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Attached here you can find the linker file.

    Thanks for the support.

    Best regards.

    Diego Greco

  • Hi George,

    I'm sorry, I have to retract my answer.
    I noted that the .hex file is correct on the block number side (and the relative addresses), but it is not correct on the endiannes:

    Hex file:



    It differs from the .bin file:

    And if I flash the .hex file it doesn't work. If I flash the .bin it works properly.

    I didn't find any option in the Arm Hex Utility in order to change the byte order. I searched for it also in the SPNU118U document.

    These are my flags set:

    Do you have any suggestion about that?

    Thanks and regards.

    Diego Greco

  • I'd appreciate if you would try a different utility.  The command armobjcopy is located in same \bin directory as the compiler armcl.  From the command line, please run a command similar to ...

    armobjcopy -O ihex project_name.out project_name.hex

    Because I can't test it, I cannot be certain this suggestion works.  But I'm confident enough to ask you to try it.

    Thanks and regards,

    -George