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.

MSP Flasher - length of Intel hex lines when reading

Other Parts Discussed in Thread: MSP430-FLASHER, MSP430G2553, MSP-EXP430G2, MSP-EXP430FR5969, MSP430FR5969

I'm using the command line MSP430 flasher, v 1.3.3 I believe, in XP, and when I read the current contents of a device to an Intel hex file, the flasher writes in 32-byte lines, so they start ":20".  Is there a switch or other way to persuade the flasher to use 16-byte lines?  Of course I could convert later, but would just rather have it the way I want it to begin with.  If not in 1.3.3, is there a later version that provides this option?

  • I'm using MSP430-FLASHER v1.3.10 in Windows 7 and this version starts with ":10", meaning that it uses 16-byte lines. You might want to try upgrading flasher versions and see if you experience similar results: software-dl.ti.com/.../index_FDS.html

    Regards,
    Ryan
  • Well I've installed the latest version in Windows 7/64, which is 1.3.11, and it still does the :20 lines.  So is there any way to make it go back to :10?

  • What triggers are you using, what is your MSP derivative, and can you provide screenshot images of the issue? I will try consulting a MSP-FLASHER expert but they will not return from vacation until mid-January.

    Regards,
    Ryan

  • Ryan Brown1 said:

    What triggers are you using, what is your MSP derivative, and can you provide screenshot images of the issue? I will try consulting a MSP-FLASHER expert but they will not return from vacation until mid-January.

    Regards,
    Ryan

    Thanks. I don't want to make a Federal case out of this.  I'm just running the flasher v1.3.11, which is the latest version, and when I use the trigger -r [2553.hex,MAIN] on a 2553, it formats the hex file with 32 bytes per line (they start with :20).  The others here report that they get :10 output running the earlier version 1.3.10, and that may be the explanation, but looking back over the last year, I see that even 1.3.3 gave me :20 lines too.  On both XP and Win 7.  So unless there's an environment variable, or they're using something that installed with CCS, which I don't use, it's a mystery.

    * -----/|-------------------------------------------------------------------- *
    *     / |__                                                                   *
    *    /_   /   MSP Flasher v1.3.11                                             *
    *      | /                                                                    *
    * -----|/-------------------------------------------------------------------- *
    *
    * Evaluating triggers...done
    * Checking for available FET debuggers:
    * Found USB FET @ HID0023:COM3 <- Selected
    * Initializing interface @ HID0023:COM3...done
    * Checking firmware compatibility:
    * FET firmware is up to date.
    * Reading FW version...done
    * Setting VCC to 3000 mV...done
    * Accessing device...done
    * Reading device information...done
    * Dumping memory from MAIN into 2553.hex...done
    *
    * ----------------------------------------------------------------------------
    * Arguments   : -r [2553.hex,MAIN]
    * ----------------------------------------------------------------------------
    * Driver      : loaded
    * Dll Version : 20409001
    * FwVersion   : 30394216
    * Interface   : TIUSB
    * HwVersion   : E 2.0
    * JTAG Mode   : AUTO
    * Device      : MSP430G2xx3
    * EEM         : Level 1, ClockCntrl 1
    * Read File   : 2553.hex (memory segment = MAIN)
    * VCC OFF
    * ----------------------------------------------------------------------------
    * Powering down...done
    * Disconnecting from device...done
    *
    * ----------------------------------------------------------------------------
    * Driver      : closed (No error)
    * ----------------------------------------------------------------------------
    */

    And the output starts like this:

    :20C00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40
    :20C02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20
    :20C04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00

  • George Hug said:
    I'm just running the flasher v1.3.11, which is the latest version, and when I use the trigger -r [2553.hex,MAIN] on a 2553, it formats the hex file with 32 bytes per line (they start with :20).  The others here report that they get :10 output running the earlier version 1.3.10, and that may be the explanation, but looking back over the last year, I see that even 1.3.3 gave me :20 lines too.  On both XP and Win 7.  So unless there's an environment variable, or they're using something that installed with CCS, which I don't use, it's a mystery.

    From looking the MSP430Flasher source code for versions 1.3.4 and 1.3.11 both versions call MSP430_ReadOutFile() in the MSP430.dll to read from the device memory and create the hex file. There are no parameters to the MSP430_ReadOutFile() function to specify the line width.

    Looking at the MSP430.dll source code from slac460n (MSP430.dll v3.5.1.001) the FileWriterIntel::writeSegment() function in FileWriterIntel.cpp has hard coded the nominal line length as 16 bytes per line (the actual bytes per line may be shorter on the first or last line depending upon address alignment).

    I need to check source code for the later MSP430.dll versions to see if the line length has been changed.

  • Chester Gillon said:
    I need to check source code for the later MSP430.dll versions to see if the line length has been changed.

    The FileWriterIntel.cpp source file in slac460s (MSP430.dll v3.9.1.2) is exactly the same source file as in slac460n, i.e. still has a Intel hex length of 16 bytes.

    George Hug said:
    So unless there's an environment variable, or they're using something that installed with CCS, which I don't use, it's a mystery.

    On further investigation with MSPFlasher v1.3.11 the Intel hex line length is sensitive to something in the debug probe / device used.

    E.g. if i connect a MSP-EXP430G2 (which is eZ430 based) with a MSP430G2553 fitted then the following command creates an Intel hex file with a line length of 32 bytes:

    C:\ti\MSPFlasher_1.3.11>MSP430Flasher.exe -r [test.hex,MAIN]
    * -----/|-------------------------------------------------------------------- *
    *     / |__                                                                   *
    *    /_   /   MSP Flasher v1.3.11                                             *
    *      | /                                                                    *
    * -----|/-------------------------------------------------------------------- *
    *
    * Evaluating triggers...done
    * Checking for available FET debuggers:
    * Found USB FET @ HID0038:COM76 <- Selected
    * Initializing interface @ HID0038:COM76...done
    * Checking firmware compatibility:
    * FET firmware is up to date.
    * Reading FW version...done
    * Setting VCC to 3000 mV...done
    * Accessing device...done
    * Reading device information...done
    * Dumping memory from MAIN into test.hex...done
    *
    * ----------------------------------------------------------------------------
    * Arguments   : -r [test.hex,MAIN]
    * ----------------------------------------------------------------------------
    * Driver      : loaded
    * Dll Version : 20409001
    * FwVersion   : 30394216
    * Interface   : TIUSB
    * HwVersion   : E 2.0
    * JTAG Mode   : AUTO
    * Device      : MSP430G2xx3
    * EEM         : Level 1, ClockCntrl 1
    * Read File   : test.hex (memory segment = MAIN)
    * VCC OFF
    * ----------------------------------------------------------------------------
    * Powering down...done
    * Disconnecting from device...done
    *
    * ----------------------------------------------------------------------------
    * Driver      : closed (No error)
    * ----------------------------------------------------------------------------
    */

    Whereas if I run the same command with a MSP-EXP430FR5969 Rev 2.0 ( which is ez-FET based) fitted with a MSP430FR5969 then an Intel hex file with a line length of 16 bytes is created:

    C:\ti\MSPFlasher_1.3.11>MSP430Flasher.exe -r [test.hex,MAIN]
    * -----/|-------------------------------------------------------------------- *
    *     / |__                                                                   *
    *    /_   /   MSP Flasher v1.3.11                                             *
    *      | /                                                                    *
    * -----|/-------------------------------------------------------------------- *
    *
    * Evaluating triggers...done
    * Checking for available FET debuggers:
    * Found USB FET @ COM44 <- Selected
    * Initializing interface @ COM44...done
    * Checking firmware compatibility:
    * FET firmware is up to date.
    * Reading FW version...done
    * Setting VCC to 3000 mV...done
    * Accessing device...done
    * Reading device information...done
    * Dumping memory from MAIN into test.hex...done
    *
    * ----------------------------------------------------------------------------
    * Arguments   : -r [test.hex,MAIN]
    * ----------------------------------------------------------------------------
    * Driver      : loaded
    * Dll Version : 30901002
    * FwVersion   : 30900000
    * Interface   : TIUSB
    * HwVersion   : E 4.0
    * JTAG Mode   : AUTO
    * Device      : MSP430FR5969
    * EEM         : Level 5, ClockCntrl 2
    * Read File   : test.hex (memory segment = MAIN)
    * VCC OFF
    * ----------------------------------------------------------------------------
    * Powering down...done
    * Disconnecting from device...done
    *
    * ----------------------------------------------------------------------------
    * Driver      : closed (No error)
    * ----------------------------------------------------------------------------
    */

    Note that the DLL version reported when using the same MSPFlasher version with the two different types of debug probe is different. My guess is that when a eZ430 based debug probe is used the MSP430.dll reverts to using an Intel hex line length of 32 bytes.

    However, I can't investigate since the "MSP Debug Stack Open Source Package" in slac460 doesn't include any code to communicate with eZ430 based debug probes.

  • Chester Gillon said:
    On further investigation with MSPFlasher v1.3.11 the Intel hex line length is sensitive to something in the debug probe / device used.

    The hex line length in sensitive to the debug probe, not the device used.

    As a different combination jumpered the ez-FET debug probe on a MSP-EXP430FR5969 to connect to the MSP430G2553 on a MSP-EXP430G2. This time the same command generated an Intel hex with a line length of 16 bytes (as opposed to the Intel hex line length of 32 bytes when the eZ430 debug probe was used):

    C:\ti\MSPFlasher_1.3.11>MSP430Flasher.exe -r [test.hex,MAIN]
    * -----/|-------------------------------------------------------------------- *
    *     / |__                                                                   *
    *    /_   /   MSP Flasher v1.3.11                                             *
    *      | /                                                                    *
    * -----|/-------------------------------------------------------------------- *
    *
    * Evaluating triggers...done
    * Checking for available FET debuggers:
    * Found USB FET @ COM44 <- Selected
    * Initializing interface @ COM44...done
    * Checking firmware compatibility:
    * FET firmware is up to date.
    * Reading FW version...done
    * Setting VCC to 3000 mV...done
    * Accessing device...done
    * Reading device information...done
    * Dumping memory from MAIN into test.hex...done
    *
    * ----------------------------------------------------------------------------
    * Arguments   : -r [test.hex,MAIN]
    * ----------------------------------------------------------------------------
    * Driver      : loaded
    * Dll Version : 30901002
    * FwVersion   : 30900000
    * Interface   : TIUSB
    * HwVersion   : E 4.0
    * JTAG Mode   : AUTO
    * Device      : MSP430G2xx3
    * EEM         : Level 1, ClockCntrl 1
    * Read File   : test.hex (memory segment = MAIN)
    * VCC OFF
    * ----------------------------------------------------------------------------
    * Powering down...done
    * Disconnecting from device...done
    *
    * ----------------------------------------------------------------------------
    * Driver      : closed (No error)
    * ----------------------------------------------------------------------------
    */

  • Thanks very much for running this down, Chester.  Since I am using the MSP430G2 launchpad, it sounds like I'm gonna get 32 bytes per line whether I want it or not.  Well, if you run across any way of changing that, please let me know.  Otherwise, I think I need to write a script that translates each :20 line into two :10 lines.  Or, just deal with the :20 lines as they are.

  • George Hug said:
    Since I am using the MSP430G2 launchpad, it sounds like I'm gonna get 32 bytes per line whether I want it or not.  Well, if you run across any way of changing that, please let me know.

    An alternative might be to use the free FET-Pro-430-LITE, rather than MSP430 Flasher.

    Using FET-Pro430 I was able to save an Intel hex file from a MSP-EXP430G2 with 16 bytes per line:

    :10C00000071206120512041231802600064D0D4E4D
    :10C0100007480E49084C094681471600814E180012

    Note that FET-Pro430 is GUI driven, so not sure if it can be controlled from a script.

  • Chester Gillon said:

    An alternative might be to use the free FET-Pro-430-LITE, rather than MSP430 Flasher.

    Using FET-Pro430 I was able to save an Intel hex file from a MSP-EXP430G2 with 16 bytes per line:

    :10C00000071206120512041231802600064D0D4E4D
    :10C0100007480E49084C094681471600814E180012

    Note that FET-Pro430 is GUI driven, so not sure if it can be controlled from a script.

    Thanks very much.  I thought that program only worked with 430F stuff.  But I will give it a try.  The price certainly is right.