TI中文支持网
TI专业的中文技术问题搜集分享网站

BLE Large Image OAD是否支持 多次在线升级

ImageA with OAD ,size = 90K

Image B  ,size = 157K

先通过A 无线下载B,然后系统默认从B启动

当要再次升级 B的时候应该如何操作呢?

Yan:

yu,

好问题!

在large image B 的工程中,以advanced remote 工程为例,

在HIDAdvRemote.c 文件中,hidAdvRemoteKeyCback()函数,

下面代码:

else if ( cmd == 0xc1 ) //TV – OAD_LARGE {     GAPRole_TerminateConnection();     uint16 crc[2] = { 0x0000, 0xFFFF };    uint16 addr = OAD_IMG_R_PAGE * ((uint16)(HAL_FLASH_PAGE_SIZE / HAL_FLASH_WORD_SIZE)) + OAD_IMG_CRC_OSET / HAL_FLASH_WORD_SIZE;    HalFlashWrite(addr, (uint8 *)crc, 1);      HAL_SYSTEM_RESET(); }

看到了吗?这就是你想要的答案:)

遥控器上,是通过按“TV” 按键,运行上面代码,是imageB 失效,然后重启,这样BIM 就会引导image A 启动,然后就能再次更新imageB了。

你也可以这么做,通过其他事件启动这段代码就可以了。

赞(0)
未经允许不得转载:TI中文支持网 » BLE Large Image OAD是否支持 多次在线升级
分享到: 更多 (0)