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.

RTOS/CC2640R2F: OAD image header

Part Number: CC2640R2F

Tool/software: TI-RTOS

Hi, 

We are working on implementing the OAD process for CC2640R2F, simple_peripheral_OAD_offchip, in our phone app.

We are struggling a little with the Image header:

We have tested the app project "simple_peripheral_cc2640r2lp_oad_offchip_app_FlashROM_oad.bin" file via the BTOOL downloader, OAD process complete here, and OAD is successful.

Now we are trying to send the image header to the Image identify characteristic, but the image header is rejected.

We are looking here: software-dl.ti.com/.../oad_profile.html

but can not seem to find a good description on how to send the image header.

We would like to have some more information on header size, offset in file and endianess when it comes to the image header included in the "simple_peripheral_cc2640r2lp_oad_offchip_app_FlashROM_oad.bin" file. 

We are using SDK 1.50.00.58.

Can anyone help?

  • The details of the image header can be found in the linker command file.

    For CCS projects in the 1.50.00.58 SDK the linker command files are located here:
    <sdk>\source\ti\blestack\common\cc26xx\ccs

    For IAR projects in the 1.50.00.58 SDK, the linker command files are located here:
    <sdk>\source\ti\blestack\common\cc26xx\iar

    AJB
  • Hi,

    Thanks for the answer.

    We checked the length of the header against the image header we send, and that was alright.
  • If the correct image header is being sent, the image header is most likely rejected from either an invalid CRC check or an invalid image type. Check the CRC Status and Image Validation field of the header that is transferred on the peripheral device when it is rejected.
  • Hi all and thank you for your answers,

    We figured out the problem, to get this we first had to send a metadata vector with 22 bytes, which you could not cut directly from the image header. (we found this by reverse engineering what was sent from Btool.

    Could not find any documentation on this anywhere, so if you know of a place where we can find this, or an explanation of what this was for, we would appreciate the info. :-)

    After this we had to send the full 80 byte image header first, before we started sending the image blocks, and all worked out nicely.