微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > BLE Large Image OAD是否支持 多次在线升级

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

时间:10-02 整理:3721RD 点击:

ImageA with OAD ,size = 90K

Image B  ,size = 157K

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

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

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了。

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top