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.

TMS320F28335: Generation of hex file

Part Number: TMS320F28335
Other Parts Discussed in Thread: C2000WARE

Hi everyone...

I am trying to understand the generation of hex file from .c files.

1. .c files are first preprocessed and then is converted to machine language.

2. Linker command links obj and .cmd to generate .out 

3. Next by the help of hex utility .out is converted into hex.

Question: the generated hex file, do I consider first line as the location where .cinit should start. Means the main function very first line is at .hex first line.

Your support will be appreciated...

Thanks You,

Regards,

RS

  • For general background on the hex utility for C28x devices hex2000, please search the C28x assembly tools manual for the chapter titled Hex Conversion Utility Description.

    do I consider first line as the location where .cinit should start. Means the main function very first line is at .hex first line

    No.  There is nothing special about the first line.  It is often located at the lowest address in memory, but even that is not guaranteed.  No symbolic information, including the entry point of the program, is encoded in the hex file.

    Thanks and regards,

    -George

  • Hi George,

    Thanks for your explanation...!!!

    I need one more information. When we dump(burn) hex file into controller, how can I place it in flash(I am using flash api) manually. I am not allowed to take controller in boot mode so I configured flash APIs. APIs are configured to write flash word by word. But now challenge to extract that word from hex file which is received over serial .

    For the first time controller is programmed using JTAG but later it needs to be updated over serial.

    Thanks in advance.

    Regards,

    RS

  • Rahul,

    Please take a look at this AppNote on Live Firmware Update. This document walks through steps needed to update the firmware over serial port:

    https://www.ti.com/lit/spruiu8

    https://www.ti.com/lit/spruiu9

    Thanks & Regards,

    Santosh

  • Hi Santosh,

    Thanks for the support...!!!

    I have gone through this document.

    My concern is as follows:

    1. Document says, to run flash kernels from RAM, the very first step required is to boot DSP in SCI boot mode(Reboot + By using GPIO Configuration - In this case GPIO84, 85, 86, 87). Here in my case its not possible because I can't access hardware(Boot mode already set to flash). 

    2. My DSP is in running condition(Timer blinking LED program is running) and during running condition I want to update the hex file and then later I can reboot. After reboot newly flashed program will get executed.

    3. I am receiving word by word(16 bit) over serial and trying to program the flash.

    Is there any thing in this information...? If yes guide me for the same.

    Thank You,

    Regards,

    RS 

  • Rahul,

    There are two examples in C2000Ware. Have you already looked at the examples? These examples exist for newer devices, it is located at :

    C/ti/c2000/C2000Ware_4_01_00_00/driverlib/f28004x/examples/flash/CCS/

    There are two examples, one of them is no-reset.

    Please take a look and see if you can adapt it for your need.

    Thanks & Regards,

    Santosh

  • Hi..

    Flash APIs need hardware reboot in boot mode. Hence was not possible as per my understanding.

    Generated hex file in ascii mode. This gave me direct flash data... 

    Thank You...