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.

UniFlash Fails to program Launchpad

Other Parts Discussed in Thread: UNIFLASH, CC3200, CC3100

Hi, I am learning the CSS and CSS Uniflash tools as a TI beginner (my background HDL/FPGA programming). So far I have successfully Echo'ed characters using the UARTecho example - but only in the debug mode from CSS. In the binary

Now I would like to "burn" it to my CC3200 board but after several days of digging and trying I still have been unsuccessful.

I have followed the guide for formatting which seems to work but burning the Flash finishes and fails to verify.

First I followed the "Format Flash" instructions. It seemed like it was doing it fine.

Here is what I did ---> open Uniflash

File>New Configuration>
Target Setup
CC3xx Serial(UART) Interface
SimpleLink Wifi CC3100/cc3200
[OK]
[Format]>1M
Consloe Reads:
[17:33:05] Begin Format operation.
[17:33:08] INFO: > Executing Operation: Connect
[17:33:10] INFO: setting break signal
[17:33:11] INFO: detecting FTDI for device reset
[17:33:12] INFO: connection succeeded
[17:33:12] INFO: getting storage list
[17:33:12] INFO: > Executing Operation: Init
[17:33:12] INFO: reading version info
[17:33:12] INFO: DEVICE CC3200 ES1.33
[17:33:12] INFO: reading version info
[17:33:13] INFO: reading version info
[17:33:15] INFO: > Executing Operation: Format
[17:33:15] INFO: Erase storage SFLASH
[17:33:16] INFO: erase storage succeeded
[17:33:16] INFO: erase storage completed
[17:33:16] INFO: > Executing Operation: Disconnect
[17:33:16] Operation Format returned.

To me this would mean I have a clean formated FLASH, am I wrong?

Next I proceed to program and it seems to program but doesn't verify (and of course doesn't run either) -- It looks like it is still adding this to the end of an existing program.

The console reads....

[17:26:31] Programs operation finished.
[17:26:36] Start operations on multiple programs on the target core...
[17:26:36] Verifying program: C:\ti\BillWorkspace2\uartecho_CC3200\Debug\uartecho_CC3200.out
[17:26:36] ERROR >> Cortex_M4_0: File Loader: Verification failed: Values at address 0x0000000020004054 do not match Please verify target memory and memory map.

[17:26:36] File: C:\ti\BillWorkspace2\uartecho_CC3200\Debug\uartecho_CC3200.out: a data verification error occurred, file load failed.
[17:26:37] Programs operation finished.

I read about the erase/verify - but there are no files in the left pane of UniFlash to erase/verify and no way to get them there - just soys "Programs".

The UniFlash users guide is no help because there are no files to erase showing.

I looked on the youtube channel and can't find any help there. What I am looking for is some help on this - like do I ned a .bin file? If so how do I make it? Looked everywhere for help on that and couldn't find anything. How do I get erase of the files that are in Flash so I am not appending ?

But most of all is there any step-by-step document that will take you through this process? Starting with the .out file that works in debug through to burning it into Fllash.

  • Hi Bill,

    See, this guide. processors.wiki.ti.com/.../CC31xx_&_CC32xx_UniFlash.

    You need to set .bin file at /sys/mcuimg.bin.

    - kel
  • Hi Bill,

    The steps to start clean with CC3200 is as follows:

    1. format the device with 1MB size. Link here: http://processors.wiki.ti.com/index.php/CC31xx_%26_CC32xx_UniFlash#Format
    2. program the service pack (this is the latest firmware). Without it, you would run from the version on ROM. Link here: http://processors.wiki.ti.com/index.php/CC31xx_%26_CC32xx_UniFlash#Service_Pack_Programing 
    3. program /sys/mcuimg.bin which is the application running on the internal CM$. It must be in *.bin format. Link here: http://processors.wiki.ti.com/index.php/CC31xx_%26_CC32xx_UniFlash#CC3200_support 

    The binary format is required and is the output when you use CCS to compile your code. Actually, there is a utility that converts/compresses the *.out into binary format. It is under \utils\tiobj2bin and is called tiobj2bin.bat.

    Shlomi

  • Hi Shlomi,

    I followed Kel's reply-and got to the point where I need the .bin.

    I had already done step 1,2 and 3 in your reply but when I got your suggested tiobj2bin.bat solution for .out to .bin, a bad case of heart burn set in.  It seems that the name cahnge part of that code doesn't work and I found out the late CSS 5.xx and now CSS6.xx use the "arm" instead of "470" in the .exe file names.  So I got a little funky which I am known for and IT WORKED!

    Maybe this will help some other beginners like me - once everything is fully understood these changes can be "backed out" (which never happens).

    The command structure in tiobj2bin.bat is like this:

    "$c:/ti/CCSV6/utils/tiobj2bin/tiobj2bin.bat" "c:/ti/BillWorkspace2/uartecho_CC3200/Debug/uartecho_CC3200.out" "$c:/ti/BillWorkspace2/uartecho_CC3200/Debug/uartecho_CC3200.bin" "${CG_TOOL_ROOT}/bin/ofd470.exe" "${CG_TOOL_ROOT}/bin/hex470.exe" "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin.exe"

    but since the code in the .bat file that changes the name didn't seem to work for these name changes...

    'ofd470.exe' is now 'armofd.exe' and

    'hex470.exe' is now 'armhex.exe'.

    I simplified things (threw a copy of the "arm" exe's into the same folder - as follows:

    copied armofd.exe and armhex.exe from

    C:\ti\ccsv6\tools\compiler\ti-cgt-arm_5.2.5\bin

    to

    C:\ti\ccsv6\utils\tiobj2bin

    then I modified tiobj2bin.bat with everything in the same place, namely   {CCE_INSTALL_ROOT}/utils/,  like this:

    "$c:/ti/CCSV6/utils/tiobj2bin/tiobj2bin.bat" "c:/ti/BillWorkspace2/uartecho_CC3200/Debug/uartecho_CC3200.out" "$c:/ti/BillWorkspace2/uartecho_CC3200/Debug/uartecho_CC3200.bin" "${CG_TOOL_ROOT}/bin/ofd470.exe" "${CG_TOOL_ROOT}/bin/hex470.exe" "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin.exe"

    and ran it (Administrator.Command Prompt) and it created the .bin file

    SUCCESS!

    Thanks for the prompt help - consider this one closed.

    Bill

  • Hi Bill,

    I'm new here too. I am having the same problem that you had. I was able to do up to the following:

    copied armofd.exe and armhex.exe from

    C:\ti\ccsv6\tools\compiler\ti-cgt-arm_5.2.5\bin

    to

    C:\ti\ccsv6\utils\tiobj2bin

    Could you simplified the process below for me?

    then I modified tiobj2bin.bat with everything in the same place, namely   {CCE_INSTALL_ROOT}/utils/,  like this:

    "$c:/ti/CCSV6/utils/tiobj2bin/tiobj2bin.bat" "c:/ti/BillWorkspace2/uartecho_CC3200/Debug/uartecho_CC3200.out" "$c:/ti/BillWorkspace2/uartecho_CC3200/Debug/uartecho_CC3200.bin" "${CG_TOOL_ROOT}/bin/ofd470.exe" "${CG_TOOL_ROOT}/bin/hex470.exe" "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin.exe"

    and ran it (Administrator.Command Prompt) and it created the .bin file

    Thank you much!

    -Ying

  • Hi Bill,

    I'm new with the CC3200 and all TI development tools. I am having the same issue like you had. I was able to perform the steps up to the following:

    I simplified things (threw a copy of the "arm" exe's into the same folder - as follows:

    copied armofd.exe and armhex.exe from

    C:\ti\ccsv6\tools\compiler\ti-cgt-arm_5.2.5\bin

    to

    C:\ti\ccsv6\utils\tiobj2bin

    Could you please elaborate or simplified the following step:

    then I modified tiobj2bin.bat with everything in the same place, namely {CCE_INSTALL_ROOT}/utils/, like this:

    "$c:/ti/CCSV6/utils/tiobj2bin/tiobj2bin.bat" "c:/ti/BillWorkspace2/uartecho_CC3200/Debug/uartecho_CC3200.out" "$c:/ti/BillWorkspace2/uartecho_CC3200/Debug/uartecho_CC3200.bin" "${CG_TOOL_ROOT}/bin/ofd470.exe" "${CG_TOOL_ROOT}/bin/hex470.exe" "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin.exe"

    and ran it (Administrator.Command Prompt) and it created the .bin file

    Thank you much!

    -Anthony