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.

CCS/CC2652R: Image programmed with UniFlash via bootloader does not run

Part Number: CC2652R
Other Parts Discussed in Thread: UNIFLASH, SIMPLELINK-CC13X2-26X2-SDK,

Tool/software: Code Composer Studio

I know there are other ways to flash this board, I am specifically trying to make UART BOOTLOADER flash work to verify it will work in an actual design.

After flashing the HEX image of one of the standard projects, the application does not start.


I have a LAUNCHXL-CC26X1R1. It works fine when loaded via UniFlash or CCS using the USB debugger.

I am trying to program it via the integrated bootloader via the "Application/User UART" which is normally used to interface with the application.

My settings:

  • Serial Connection > CC2652R1F(BOOTLOADER)
  • Application Image 1: zed_light_CC26X2R1_LAUNCHXL_tirtos_ccs.hex
  • COM3 (shows as "XDS 110 Class Application/User UART", and normally has the application interface. Putty is closed while using UniFlash)

Process:

  • Hold BTN-1 / DIO13 while pressing RESET
  • (Verify the application does not start)
  • Press "Load Image" in UniFlash

Result:

  • The flash process is reported to be successful (see below)
  • After resetting the board, the application does not start (no application output on UART, no other behavior)
  • The bootloader is also not starting (therefore I assume in the bootloader start flowchart "FLASH image valid?" must be true)
  • Switching UniFlash to use the default XDS110 USB Debug probe and verifying the same hex file it immediately fails to verify at 0x00000040
  • Programming the same hex file using the XDS110 USB Debug probe is successful.
[11/22/2020, 6:44:45 PM] [INFO] Cortex_M3_0: CC2652R1F(Bootloader)
[11/22/2020, 6:44:45 PM] [INFO] Cortex_M3_0: Auto baud detection is successful!
[11/22/2020, 6:44:45 PM] [INFO] Cortex_M3_0: Ping command is successfully received by target!
[11/22/2020, 6:44:45 PM] [INFO] Cortex_M3_0: Erase sector on address :0x0 is succesful!
[11/22/2020, 6:44:45 PM] [INFO] Cortex_M3_0: Erase sector on address :0x2000 is succesful!
[11/22/2020, 6:44:45 PM] [INFO] Cortex_M3_0: Erase sector on address :0x4000 is succesful!
[11/22/2020, 6:44:45 PM] [INFO] Cortex_M3_0: Erase sector on address :0x6000 is succesful!
[11/22/2020, 6:44:45 PM] [INFO] Cortex_M3_0: Erase sector on address :0x8000 is succesful!
[11/22/2020, 6:44:45 PM] [INFO] Cortex_M3_0: Erase sector on address :0xA000 is succesful!
[11/22/2020, 6:44:45 PM] [INFO] Cortex_M3_0: Erase sector on address :0xC000 is succesful!
[11/22/2020, 6:44:45 PM] [INFO] Cortex_M3_0: Erase sector on address :0xE000 is succesful!
[11/22/2020, 6:44:45 PM] [INFO] Cortex_M3_0: Erase sector on address :0x10000 is succesful!
[11/22/2020, 6:44:45 PM] [INFO] Cortex_M3_0: Erase sector on address :0x12000 is succesful!
[11/22/2020, 6:44:45 PM] [INFO] Cortex_M3_0: Erase sector on address :0x14000 is succesful!
[11/22/2020, 6:44:46 PM] [INFO] Cortex_M3_0: Erase sector on address :0x16000 is succesful!
[11/22/2020, 6:44:46 PM] [INFO] Cortex_M3_0: Erase sector on address :0x18000 is succesful!
[11/22/2020, 6:44:46 PM] [INFO] Cortex_M3_0: Erase sector on address :0x1A000 is succesful!
[11/22/2020, 6:44:46 PM] [INFO] Cortex_M3_0: Erase sector on address :0x1C000 is succesful!
[11/22/2020, 6:44:46 PM] [INFO] Cortex_M3_0: Erase sector on address :0x1E000 is succesful!
[11/22/2020, 6:44:46 PM] [INFO] Cortex_M3_0: Erase sector on address :0x20000 is succesful!
[11/22/2020, 6:44:46 PM] [INFO] Cortex_M3_0: Erase sector on address :0x22000 is succesful!
[11/22/2020, 6:44:46 PM] [INFO] Cortex_M3_0: Erase sector on address :0x24000 is succesful!
[11/22/2020, 6:44:46 PM] [INFO] Cortex_M3_0: Erase sector on address :0x26000 is succesful!
[11/22/2020, 6:44:46 PM] [INFO] Cortex_M3_0: Erase sector on address :0x56000 is succesful!
[11/22/2020, 6:44:46 PM] [INFO] Cortex_M3_0: Erasing memory time elapsed: 1.26s
[11/22/2020, 6:45:35 PM] [INFO] Cortex_M3_0: Programming memory time elapsed: 49.03s
[11/22/2020, 6:45:35 PM] [INFO] Cortex_M3_0: Number of bytes programmed: 169728 bytes
[11/22/2020, 6:45:35 PM] [INFO] Cortex_M3_0: Programming speed: 3.38kByte/s
[11/22/2020, 6:45:35 PM] [INFO] Cortex_M3_0: Verify memory at address :0x0 for 0x1FFC bytes, is match with the expected CRC : 0x3AC4EE02
[11/22/2020, 6:45:35 PM] [INFO] Cortex_M3_0: Verify memory at address :0x2000 for 0x2000 bytes, is match with the expected CRC : 0x5679483
[11/22/2020, 6:45:35 PM] [INFO] Cortex_M3_0: Verify memory at address :0x4000 for 0x2000 bytes, is match with the expected CRC : 0x7DAF4391
[11/22/2020, 6:45:35 PM] [INFO] Cortex_M3_0: Verify memory at address :0x6000 for 0x2000 bytes, is match with the expected CRC : 0xEFB6707B
[11/22/2020, 6:45:35 PM] [INFO] Cortex_M3_0: Verify memory at address :0x8000 for 0x2000 bytes, is match with the expected CRC : 0x623A563C
[11/22/2020, 6:45:35 PM] [INFO] Cortex_M3_0: Verify memory at address :0xA000 for 0x2000 bytes, is match with the expected CRC : 0x5593D0A9
[11/22/2020, 6:45:35 PM] [INFO] Cortex_M3_0: Verify memory at address :0xC000 for 0x2000 bytes, is match with the expected CRC : 0x1ECF194F
[11/22/2020, 6:45:35 PM] [INFO] Cortex_M3_0: Verify memory at address :0xE000 for 0x2000 bytes, is match with the expected CRC : 0x57B796A4
[11/22/2020, 6:45:35 PM] [INFO] Cortex_M3_0: Verify memory at address :0x10000 for 0x2000 bytes, is match with the expected CRC : 0x1F9E3F81
[11/22/2020, 6:45:35 PM] [INFO] Cortex_M3_0: Verify memory at address :0x12000 for 0x2000 bytes, is match with the expected CRC : 0x5B9C29AB
[11/22/2020, 6:45:35 PM] [INFO] Cortex_M3_0: Verify memory at address :0x14000 for 0x2000 bytes, is match with the expected CRC : 0xDDA719C7
[11/22/2020, 6:45:35 PM] [INFO] Cortex_M3_0: Verify memory at address :0x16000 for 0x2000 bytes, is match with the expected CRC : 0xD428ECCF
[11/22/2020, 6:45:36 PM] [INFO] Cortex_M3_0: Verify memory at address :0x18000 for 0x2000 bytes, is match with the expected CRC : 0x21DF5E5B
[11/22/2020, 6:45:36 PM] [INFO] Cortex_M3_0: Verify memory at address :0x1A000 for 0x2000 bytes, is match with the expected CRC : 0xCA6100E0
[11/22/2020, 6:45:36 PM] [INFO] Cortex_M3_0: Verify memory at address :0x1C000 for 0x2000 bytes, is match with the expected CRC : 0x7CD113A7
[11/22/2020, 6:45:36 PM] [INFO] Cortex_M3_0: Verify memory at address :0x1E000 for 0x2000 bytes, is match with the expected CRC : 0xCEAB69D9
[11/22/2020, 6:45:36 PM] [INFO] Cortex_M3_0: Verify memory at address :0x20000 for 0x2000 bytes, is match with the expected CRC : 0xEEFC5121
[11/22/2020, 6:45:36 PM] [INFO] Cortex_M3_0: Verify memory at address :0x22000 for 0x2000 bytes, is match with the expected CRC : 0x2E67AF3B
[11/22/2020, 6:45:36 PM] [INFO] Cortex_M3_0: Verify memory at address :0x24000 for 0x2000 bytes, is match with the expected CRC : 0x9088E32D
[11/22/2020, 6:45:36 PM] [INFO] Cortex_M3_0: Verify memory at address :0x26000 for 0x36AC bytes, is match with the expected CRC : 0xD3BC9DC5
[11/22/2020, 6:45:36 PM] [INFO] Cortex_M3_0: Verify memory at address :0x57FA8 for 0x30 bytes, is match with the expected CRC : 0x70A9D137
[11/22/2020, 6:45:36 PM] [INFO] Cortex_M3_0: Verifying memory time elapsed: 0.6301s
[11/22/2020, 6:45:36 PM] [INFO] Cortex_M3_0: CCFG comes from the application image.
[11/22/2020, 6:45:36 PM] [INFO] Cortex_M3_0: Reset is executed!
[11/22/2020, 6:45:36 PM] [SUCCESS] Program Load completed successfully.

  • Hi Ben,

    I will attempt to replicate this behavior on UNIFLASH.  Are you using the SIMPLELINK-CC13X2-26X2-SDK v4.30 with an unmodified zed_light project?  Have you followed all instructions in SLAU799 or considered evaluating SblAppEx from SWRA466?

    Regards,
    Ryan

  • Hi Ben,

    I've observed similar behavior with both the pwmled2 and zed_sw examples.  I am contacting the Uniflash Software Development Team for further assistance.

    Regards,
    Ryan

  • Hi Ryan,

    Thanks for reproducing the problem.

    Sorry for the slow response; I thought I had selected email notifications, but I didn't see one.

    Yes, I am using SDK 4.30 with an unmodified zed_light project. I did consult the appnotes you mentioned.

    Looking forward to hearing what the Uniflash team says.

    Thanks again,

    --Ben

  • Hi Ben,

    I've found that there has been a handoff in UNIFLASH bootloader ownership to which establishing further development and debugging support is still being determined.  In the meantime I would highly recommend that you try using SblAppEx to evaluate the CC2652R ROM Bootloader.

    Regards,
    Ryan

  • Hi Ryan,

    I can confirm that SblAppEx can flash my LAUNCHXL-CC26X1R1 with the "blinky" application and it does run after flashing.

    Is there an older version of UniFlash (I'm currently using 6.1.0.2829) that I should try?

    Thanks,

    --Ben

  • Hi Ben,

    I'm glad to hear that SblAppEx works to load the program and am honestly not sure if any older versions of UniFlash will operate any differently.

    Regards,
    Ryan

  • Hi Ben,

    I just tried to reproduce the problem with UniFlash 6.1.0. To make sure the chip comes up in bootloader mode I erased the complete flash using the standard debug mode (JTAG).

    Then starting a session in Uniflash selecting BOOTLOADER mode and program the image worked fine by me. I think the problem you see is that the chip is not in bootloader mode.

    In addition to the SWRA466 have a look at the Technical Reference Manuel chapter 10.1.2 Bootloader Backdoor to see other ways to ensure the chip comes up in bootloader mode.

    Regards,

    Øyvind

  • Hi Øyvind,

    Thanks for looking into this.

    I'm sure the chip is going into bootloader. It responds correctly over the serial port. It is also succeeds with an unmodified sblAppEx. Even Uniflash can successfully exchange packets with the device, it just doesn't result in a working flashed image.

    I also tried your experiment (erase with JTAG, program via BOOTLOADER) using stock  zed_light_CC26X2R1_LAUNCHXL_tirtos_ccs.hex and it fails in the same way (reports success, but application does not run).

    Can you share with me the hex file you are able to load? Are you doing anything different in CCS to prepare the hex file for serial bootloader?

    --Ben

  • I didn't build the image myself but there is nothing special to do to prepare the file for serial bootloader mode.

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/538/CC26x2R1_5F00_led.hex

    Øyvind

  • Thanks for that image. I can recreate your steps with CC26x2R1_led.hex but not a more complex application like zed_light_CC26X2R1_LAUNCHXL_tirtos_ccs.hex . Output of Uniflash looks basically the same in both (see log in initial post ending in "program load completed successfully")

    Can you verify that one of the sample Zigbee apps can be loaded in this way?

  • Hey Ben,

    Thank you for following up and providing further debug information.  After performing a diff compare of the flash after programming over the JTAG interface and the BOOTLOADER interface there appear to be some differences.  This confirms a bug in the UNIFLASH bootloader programmer that we will continue to investigate.  If programming using the serial interface is required, another option would be to use the FLASH-PROGRAMMER software.

    Regards,
    Ryan

  • For future visitors:

    I successfully flashed the image with FLASH-PROGRAMMER-2 with no issues.

    Thanks for your help, really exceeded expectations.