Because of the Thanksgiving holiday in the U.S., TI E2E™ design support forum responses may be delayed from November 25 through December 2. Thank you for your patience.

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 Serial Error F28M35.

Other Parts Discussed in Thread: UNIFLASH

Hello,

I'm attempting to use Uniflash to flash my F28M35H52C1 through the serial port. I can program with CCS fine and once I have our code loaded onto the chip I can program through the Serial port fine. When I try and use UniFlash to program a blank chip through the Serial port I get the following error:

[09:45:19] Cortex_M3_0: Loading Concerto M3 flash kernel, this may take a few minutes...

[09:45:22] Cortex_M3_0: Concerto M3 flash kernel has been successfully loaded.

[09:45:28] ERROR >> Cortex_M3_0: <!>Serial Communication exception: Please reset the device and try again!

[09:45:38] Cortex_M3_0: Loading Concerto M3 flash kernel, this may take a few minutes...

[09:45:43] ERROR >> Cortex_M3_0: <!>Serial Communication exception: Please reset the device and try again!

[09:45:44] Begin Writing flash memory operation...
[09:45:44] Loading program: C:\Users\Adam\workspace_v5_1\CORTEX\Debug\CORTEX.out
[09:45:44] ERROR >> Cortex_M3_0: Trouble Writing Memory Block at 0x200000 on Page 0 of Length 0x36: Unsupported GTI Function.

[09:45:44] ERROR >> Cortex_M3_0: GEL: File: C:\Users\Adam\workspace_v5_1\CORTEX\Debug\CORTEX.out: Load failed.

[09:45:44] File: C:\Users\Adam\workspace_v5_1\CORTEX\Debug\CORTEX.out: Load failed.
[09:45:44] Operation Writing flash memory returned.

I'm using a controlcard with GPIO0 and GPIO1 as my serial port pins and the GPIO35/GPIO47/GPIO43 set to boot mode. Any help on what exactly could be going wrong would be appreciated.

- Thanks

  • Hi Adam,

    First, check the controlCARD, the BOOT mode switch SW1 position 3 is down(OFF), the other three is up(ON). And have a jumper wire to connect the GPIO0 and GPIO1 to the XDS100 UART, as Fig.1 shown.

    Fig.1

    Sencond, create an serial target configuration in the Uniflash,  set the correct COM , and Baud Rate as Fig.2.

     

     

    Third, power on the controlCARD through J2 or Docking(if using docking, the XDS100 in it should be disable), then connect the J20 ISO USB, load the .out to the M3 or C28.

  • Hello,

    Boot mode is set correctly, power is on, serial interface is configured. I attempted to use C2Prog but I run into the same problem:

    Uniflash:

    Viewing the serial communication via a terminal I can see the PC and F28 communicate and the secondary bootloader load. After it is loaded I can watch both Uniflash & C2Prog sending a message down(I'm guessing code to tell the F28 to jump to the secondary bootloader) but the F28 does not respond. It seems as if it isn't jumping into the secondary bootloader correctly.

  • Update:

    -I tried using a different control-card with no success.

    -I tried two different computers with no success.

    -I tried every standard baud rate with no success.

    -I tried starting CCS and connecting to the chip, resetting the chip into "Boot from Serial", running C2Prog/Uniflash and then using the debugger to determine what the chip is doing. Using the debugger I can see that both chips in fact have jumped into RAM but they  don't send any response back to the PC. Uniflash jumps into it's secondary bootloader which appears to be in the range of 0x20005000  & 0x20007e74 but I can see that the M3 sends no response to the PC which causes the "Serial Communication Exception".  C2Prog jumps the chip into it's secondary bootloader also but again the M3 remains mute never responding to the Pc after it loads the secondary bootloader and the process times out.

    Any help as to why the chip refuses to respond to the PC once it enters the secondary bootloader that is running in M3 ram would be much appreciated..

    -Thanks

  • Hi Adam,

    set the Baud rate as 115200.

    and make sure the control card use the GPIO0, GPIO1 as serial connection.

    Eric

  • I have tried 115200, 56000, 38400, 19200, 9600 with no success. 

    GPIO0 and GPIO1 are connected. The serial link is fine, the secondary bootloader(flash kernel) is successfully loaded onto the M3 by both C2Prog and Uniflash. The problem is the M3 does not respond to the PC after it receives the secondary bootloader.

    -Thanks 

  • Adam,

    Are you using new revision (RevA/RevB) of F28M35x devices?

    If you are using newer revision (RevA/RevB) of F28M35x devices, please refer to this post: http://e2e.ti.com/support/microcontrollers/c2000/f/171/t/251698.aspx

    Please replace the existing xmls with the ones that Lori provided in above link.  For UniFlash, these new xmls should go to uniflashv2\ccs_base\c2000\nowFlash\configs.

    You are able to program with CCS fine because you might have installed CCS updates which will install these new xmls at uniflashv2\ccs_base\c2000\nowFlash\configs.

    Thanks and regards,

    Vamsi

  • Both boards I tried are revision 0.  

     -Thanks 

  • Adam,

    You might have programmed Flash password locations with values other than 0xFFFFFFFF?  Connect to target using CCS and check the password locations in Flash (0x200000-0x20000C and 0x27FFF0-0x27FFFC) using the memory window.  If these locations are not all 0xFFFFFFFFs, then copy those values in to key fields in UniFlash's Security settings window and unlock the device.  This might fix the issue.

    Thanks and regards,

    Vamsi

  • I figured out the solution and finally got it to program through the serial port. The problem was the RS-232 driver board is slow and confuses the M3 during boot up when it attempts to lock the Baud rate.

    When I set the baud to low speeds the flash kernel loads but the actual programming of the flash appears to be locked at 115200 which is what caused the error messages above.

    If I attempt to simply program at 115200 Uniflash will crash because the baud rate never locks as the driver board we use is slow. This causes the flash kernel to never fully load onto the board and causes it to crash.

    If I set the baud rate to 38400 or 57600 the flash kernel will successfully load onto the M3 but it will fail at the next step since the M3 (Running from the kernel) refuses to communicate at the slower baud rate than 115200.

    The work around is to run an attempt at the slow baud rate (57600) and let the flash kernel load onto the M3, the board will crash after the flash kernel is on the M3. Then change the baud rate to 115200 and run the same flash command again. This causes Uniflash to communicate with the M3 and skip the loading of the flash kernel since it is already in the chip. It will then program successfully. You can then program the C28 by using 115200 baud since the M3 flash kernel is still on board.

    -Thanks