Android APP CC2640R2F OTA 流程

Android APP CC2640R2F OTA 流程

1.镜像(bin文件)验证

a.
ffc1写入(10:00)打开通知
ffc2写入(10:00)打开通知
ffc5写入(10:00)打开通知
发送CMD 01(1byte)到ffc5,返回3byte(第二个字节是返回需要修改的mtu大小
OAD_BLOCK_SIZE)
Get OAD Block Size Command 0x01 0 None
Get OAD Block Size Response 0x01 3 OAD_BLOCK_SIZE
b.校验header内容:

OAD Image Identification Value
1.鉴定OAD镜像是否是 CC2640R2F is 0x20474D492044414f (ASCII for ‘OAD IMG ‘) 2.让OAD Target快速识别镜像的合法性。
3.Provides a means for the BIM to find the flash page containing the start of OAD image for on-chip OAD
BIM Version
BIM判断版本是否正确
Image Header Version
检验镜像是否正确
Image Information
提供了关于OAD图像状态和类型的详细信息,如下:

Image Length
镜像的总长度, For On-chip OAD, the word size of the CC2640R2F is fixed.is
defined by EFL_OAD_ADDR_RESOLUTION
Software Version
用于跟镜像中包含的应用程序和堆栈修改

C.镜像校验成功
镜像校验成功在FFC1中返回一个字节(00 success),Start OAD’ command.需要开启
OTA,FFC5.开启成功后OAD Target进入configuration state,同时返回cmd 12和所需的第一
block number序列号,这时开始发送第一个block给OAD Target
Start OAD Process Command 0x03 0 None
Start OAD Process Response 0x03 5 Byte 0: Command ID (0x03)Byte 1-3: Block Number

2.镜像block 发送

确保通知是打开的
镜像块写入Char响应,CMD(0x12)
Image Block Write Char Response 0x12 6 Byte 0: Command ID (0x12)Byte 1: Status of the previous block receivedByte 2-5: Block number

byte1 的值:

3.根据发送block成功后会返回,第一个字节是请求FFC2发送Block number
4.如果整个bin文件的下载完成,OAD Target设备将响应状态码OAD_DL_COMPLETE和Block
number设置为0xFFFFFFFF。
5.bin文件下载完成后,收到OAD_DL_COMPLETE,需要发送0x04使OTA Target进行验证。
验证成功OTA Target会进行烧录,烧录成功后20s会断开蓝牙,进行重新连接
Enable OAD Image Command 0x04 0/4 LEN = 0: noneLEN = 4: Image type and image number of image to be downloaded

Enable OAD Image Response 0x04 2 Byte 0: Command ID (0x04)Byte 1: Return Status

3.OTA 完成

   接收完整镜像像后,如果CRC匹配会跳转到‘End’状态。

然后应用程序检查是否有更多的镜像等待下载。如果有,应用程序将返回到镜像下载状态。如果
没有更多的镜像下载,OAD Target将检查下载的镜像是否应该被复制到内部的flash中。
如果已接收到启用的OAD Target命令,则新的镜像将被复制到内部闪存中,设备将被重新设置。如果没有,当前驻留的镜像将继续正常执行。

4.OTA 时序图

http://www.plantuml.com/plantuml/uml/fLHDJnD163upl-8zwg59CU7IM4AXHKaW6Dh4U2BJtIcTkDsjixEed0eHYX_b8nW-eC6GKEI2U294GNwCdQNz5yxEbjrMOQFnqcpVZ-TzdkUTcI6ROyQTae6mnkaivWHIvJAWYHUSPmcRfHg93NgHnF1u1fooZZb6HTEITTOiOQ1I89OFtSqJT_jKh1srZkP5hNhzxJF21WVRqJHYsmN700tR1A4-sH4Rj7reIEZMIzEmi0vvQYAPUXYB1JalH4ozhm_ff9TTCWbZ9kKK6tGESsgPa4mY1Jp9SRe3ILX2L9V4OTNICMAau1EM1Jc6PmX784wsHVtOhTV4kuFHqNGSUTD0LYA4Ud1YWs6R5FkZ8glxGIpjYCL6kreJQwTY_RBv_R1rjISZaxcKUtmWBbRlC220acm3L9tQccMQHEF8rnp1e7Msw6wTYRKLz-s6k91aHkA-YERv–lTD-tAxlMdHc-_jBKBW3E7_8uVPYNU03mY72PJQHWsBEqvPEaSWH6hLCBIe969DCHVnVkZ9dIrJH6xR9as2ViYfCdP_MhkM4d-XyV4gr0–fz0LRo0gU4mqcskDFOFGhsu8PDEMpIF0SXop7mNdZ3BQxYn84gvJzpN_vHHBdKNCGjcAorvbGt9HnDve2Zumgr2mIOIu3Nm8kdWc4ufJnWWOjWteOu_KJp_0lYU7-o-QX2_3zxvH6hQhKlvr-twUEf5ONIco96ut0XQt9M6MDr2uii7HQbviTkw-YZszf54cKwDJsLIwMVJsLngAfT98t6quExNc-Srxo5QtcdNA_8jGlA2kfjVnUfwkpAlG7vM5jH5zqP67vc1yCZSDa-kyhPuX04P4-SD4bWGt2a6A2ZgRe04IAPtvi97mr-79NV7_kimgLqCoH-dPFm2

5.http://software-dl.ti.com/lprf/simplelink_cc2640r2_latest/docs/blestack/ble_user_guide/html/ble-stack-3.x-guide/reference.html
TI 官方OTA 介绍

阅读更多
版权声明:快乐因分享而永恒,知识而分享而不朽,我分享我快乐... https://blog.csdn.net/walter247443819/article/details/80336505
个人分类: Logic
上一篇JavaEE 基础学习
下一篇mkdir和mdirs区别
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭