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.

CC2652R: Linux serial bootloader host: Error unsupported intel hex record type 5

Part Number: CC2652R
Other Parts Discussed in Thread: UNIFLASH

My customer is using the cc13xx-sbl tool from TI15.4 Linux Stack SDK to flash a CC2652. When they tried to flash the host_test_app.hex from <SDK>\examples\rtos\CC26x2R1_LAUNCHXL\ble5stack\hexfiles, an error occured at 71% of the programming process, with a message "Error unsupported intel hex record type 5":

Following this message, I have found that the last second line of the host_test_app.hex has a record of type 5:

Apparently cc13xx-sbl does not support record type 5 of Intel hex, my question is what does this record mean and is there a work around to make it work?

  

And there is another question regarding to the Linux host, on customer's board, CC2652 is connected to the host through the UART TX/RX lines directly. Does this mean they have to enable the SBL_TWO_WIRE macro instead of the default USB SBL? I have noticed there are some differences between the two modes in main.c and sblUart.c, but not quite understand the exact usage. What is the recommendation?

BR,

Shuyang

  • Hi Shuyang,

    Are you able to attempt this with CC1352 device?

    I have notified the linux gateway team to comment.

    Please stay tuned for updates (likely early next business week).

    Thanks,
    Toby

  • Yes, it also appears with the CC1352 device.

    BR,

    Shuyang

  • Hi Shuyang,

    1) Which version of the Linux GW SDK are you using?

    2) Which version of the SimpleLink SDK did you use for the host_test.hex file?

    While we are looking for a solution to your problem, they can use Uniflash to program the CC2652 (Uniflash is available on Linux).

    https://www.ti.com/tool/UNIFLASH

    Cheers,

    Marie H

  • Hi Marie,

    1) I'm using TI-15-4-STACK-GATEWAY-LINUX-SDK_3.30.01.02.

    2) SDK5.40

    Thanks for the advice, I haven't noticed Uniflash supports Linux. And I have a little discussion about the issue, if I import and build the host_test example with TI ARM compiler, the generated hex file does not contain the type 5 record, and the firmware flashing can be finished without issue. It seems the hex file provided in the SDK is generated by a different compiler?

    BR,

    Shuyang

  • Hi Shuyang,

    Glad you found a work-around.

    Here is the explanation from the SW developer team:

    There are 3 Intel HEX formats. Intel I16HEX format support the record type from 00 to 03. The I32HEX format supports the record type from 00 to 05, but not 01. 

    The record type 05 is the starting Linear address. This is the starting execution address. 

    When you use the TI toolchain, the generated HEX doesn’t include the record type 05. (However, if you use the IAR ielftool to generate the HEX file, the record type 05 is included. This can help IAR debugger loading the HEX file into CPU and set the execution address by using the record type 05. )

    Below is the record 05 in hex file.

     

    Our SBL doesn’t support the record type 05 because we can’t tell ROM boot loader to execute from address defined in record 05.

    The fix is very simple.

    1. Using any text editor to open the hex file generated by IAR
    2. Typically, the record 05 is close to end of file.
    3. Remove the line which contains the record 05
    4. Save file.
    5. try to use cc13xx_sbl to download the saved hex file.

     Cheers,

    Marie H

  • Hi Marie,

    Thanks for the detailed explanation, that explains the difference between the provided hex and compiled hex. I will forward this post to the customer, and since they are using CCS for developing, I think the flashing will be OK.

    Best regards,

    Shuyang