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/CC2640R2F: Downloading firmware over UART via sblAppEx

Part Number: CC2640R2F

Tool/software: Code Composer Studio

Hello,

I'm attempting to program my device via the serial bootloader interface and am running into issues. I've been following the SWRA466A guide, and I've been able to successfully get the device to start up in bootloader mode, and I've also been able to get sblAppEx running and am able to run to completion using the example code provided. Now I'd like to program a board using a different project, like simple peripheral. It appears that you have to use a .bin file with sblAppEx as when I tried to use the .hex file output from simple_peripheral, it fails when erasing the flash, comes back with INVALID_ADDRESS. Is it true that sblAppEx requires a .bin file?

I've added "${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin" "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" "${CG_TOOL_ROOT}/bin/armofd" "${CG_TOOL_ROOT}/bin/armhex" "${CCS_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin" to the post-build steps for the app project in order to have CCS produce a .bin file. This worked and when used in sblAppEx, it executes to the end of the writing step, reporting back with this error:

"99% Timed out waiting for ACK/NAK. No response from device.

Error during flash download. Failed to read device status.

- Start address 0x0001FEE4

- Tried to transfer 252 bytes.

- This was transfer 520 in chunk 0."

Any guidance on what's wrong or how to program simple_peripheral over serial using bootloader mode?

Thanks.

  • Hi,

    You can also try the serial bootloading with Smart RF Flash Programmer 2: www.ti.com/.../flash-programmer

    1. With Srf flash prog 2, Mass erase the target device
    2. Update/build factory app file “ccfg_app_ble.c” using IDE with the following before the #include startup code :
    a. #define SET_CCFG_BL_CONFIG_BL_ENABLE 0xC5 // Enabled
    b. #define SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE 0xC5 // Enable ROM boot loader
    c. #define SET_CCFG_BL_CONFIG_BL_LEVEL 0x00 // Active high to open boot loader backdoor, 0x0 for active low
    d. #define SET_CCFG_BL_CONFIG_BL_PIN_NUMBER 13 // DIO number for boot loader backdoor
    3. With Srf flash prog 2, program target device with factory app hex file
    4. With Srf flash prog 2, on the left “connected devices” bar, click on the “unknown” device until XDS110 Class Application/User UART
    5. Select “CC2640R2F” from the drop down.
    6. On the R2LP device, hold down the left button, click top reset button and then release the left button to enable backdoor ROM SBL mode.
    7. With Srf flash prog 2 and the UART “CC2640R2F” still selected, program the device with the application bin using backdoor ROM SBL mode (this will take much longer than normal jtag programming).

    Best wishes

  • Awesome, I wasn't aware that Smart RF Flash Programmer 2 could do this. This is a much easier way to do it than what's described in SWRA466A. I was able to program my board successfully using Smart RF Flash Programmer 2, and just a note for others, I did convert the .hex file produced by CCS into a .bin file using this software: hex2bin.sourceforge.net/ After that, following the steps above, I was able to program the board.

    Is there are plans to update SWRA466A to describe using Smart RF Flash Programmer 2 or creating a new guide to describe this? Seems like that would help others who want to do this as well.

    Thanks!