【FR801xH】OTA在线升级APP显示失败但是板子升级成功问题分析

00. 目录

01. 问题描述

使用APP升级设备固件,APP显示升级失败,但是设备实际升级成功。

02. 问题分析

由于固件版本号没有改变导致的。升级确认是否成功,最终通过固件的版本号来比较,如果发现升级后的版本号小于或者等于之前的版本号,则认为固件升级失败。

03. 问题解决

OTA升级流程
在这里插入图片描述

修改SDK中固件的版本号

#define MODULE_APP_VER ".0.2"

/*qthSDK程序入口*/
void qth_main(void)
{
    Quos_logPrintf(APPS_OPEN, LL_DBG, "====qth_main===");
    oprt_ret ret = OPRT_OK;
    Qth_eventCb_t event_cb = {0};
    Qth_otaEventCb_t otaCb = {0};

    //初始化所有组件
    ret = Qth_devInit();
    if (OPRT_OK != ret)
    {
        Quos_logPrintf(APPS_OPEN, LL_ERR, "cloud init error:%d", ret);
        return;
    }

    /*设置PK PS,实际产品需要替换到开发者平台上创建的PK PS*/
    Qth_configSetProductInfo(DEMO_PK, DEMO_PS);
    //设置固件版本的API
    Qth_configSetModuleAppVer(MODULE_APP_VER); 
    
 	........   
}

04. 结果验证

修改好固件版本之后,再次升级,APP显示升级成功。

05. 附录

### FR801xH 设备通过串口进行 OTA 升级的方法 FR801xH 是一款基于芮坤BLE 芯片,支持多种升级方式,其中包括通过串口实现 OTA(Over-The-Air)升级。以下是关于如何利用串口完成 FR801xHOTA 升级方法及相关注意事项。 #### 1. 导入必要的文件 为了实现 OTA 功能,需要在工程中导入特定的文件夹内容。具体操作是从 SDK 中引入 `ble_ota` 文件夹中的四个必要文件到当前项目中[^1]。这些文件通常包含了用于处理固件更新的核心逻辑以及协议栈的支持功能。 #### 2. 配置上位机环境 如果目标是通过 USB 口发送升级镜像至 MCU,则需配置好 Linux 系统下的工具链和支持库[^2]。此过程涉及编写脚本或者调用现有命令来管理数据传输流程,并确保最终能够正确写入 SD 卡或其他存储介质。 #### 3. 实现串口通信机制 对于串口 OTA 来说,主要依赖于 UART 接口来进行主机与从机之间的交互。以下是一个简单的 Python 示例代码片段展示如何设置基本参数并建立连接: ```python import serial def setup_serial(port='/dev/ttyUSB0', baudrate=9600, timeout=1): ser = serial.Serial( port=port, baudrate=baudrate, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS, timeout=timeout ) return ser ser = setup_serial() if not ser.isOpen(): ser.open() print(f'Serial Port {ser.name} is open.') ``` 上述代码定义了一个函数用来初始化指定端口号上的串行对象实例;同时设置了波特率、校验模式等重要属性以便后续使用[^3]。 #### 4. 编码与解码固件包 当准备完毕之后就可以着手封装实际要传送的数据流了——即将原始二进制映象转换成适合经由UART线路传递的形式再还原回去的过程称为编码/解码。这一步骤可能涉及到复杂的算法设计比如CRC检验等等以提高可靠性。 #### 5. 测试整个工作链条 最后务必进行全面的功能验证测试确认各个环节都能正常运作无误后才可投入正式部署阶段。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沧海一笑-dj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值