1 HMI-Board OTA升级快速上手指南-德赢Vwin官网 网

HMI-Board OTA升级快速上手指南

描述

 

 

硬件平台

HMI-Board 为 RT-Thread 联合瑞萨推出的高性价比图形评估套件,取代传统的HMI + 主控板硬件,一套硬件即可实现 HMI + IoT + 控制 的全套能力。依托于瑞萨高性能芯片 RA6M3及 RT-Thread 软件生态,HMI Board 不仅硬件性能强劲,同时软件生态丰富,助力开发者快速开发出GUI 智能硬件产品。

OTA

OTA Boot 例程教学

 

简介

首先需要烧录 OTA 升级的 Boot 工程。通过运行当前示例工程,可以学习如何利用 OTA 功能给开发板升级固件。当前例程使用 qboot 软件包,完成升级业务。

烧录此工程之后,可配合APP示例工程,体验OTA升级功能,或按照下方制作APP的教程,自己制作可升级的APP。

下面通过 RT-Thread studio 创建 OTA Boot 工程(请在SDK Manager中提前安装 HMI-Board SDK):

OTA

 

使用说明

下载程序成功之后,系统会自动运行并打印系统信息。

连接开发板对应串口到 PC , 在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到RT-Thread 的输出信息。输入 help 命令可查看系统中支持的命令。

  •  
  •  
  •  
  •  
  •  

\ | /- RT - Thread Operating System/ | \ 5.0.1 build Oct 20 2023 18:29:172006 - 2022 Copyright by RT-Thread teammsh >Qboot startup ...Qboot version : V1.0.5 2020.10.05[D/FAL] (fal_flash_init:47) Flash device | onchip_flash_hp0 | addr:0x00000000 | len: 0x00010000 | blk_size: 0x00002000 |initialized finish.[D/FAL] (fal_flash_init:47) Flash device | onchip_flash_hp1 | addr:0x00010000 | len: 0x001f0000 | blk_size: 0x00008000 |initialized finish.[I/FAL] ==================== FAL partition table ====================[I/FAL] | name | flash_dev | offset | length |[I/FAL] -------------------------------------------------------------[I/FAL] | boot | onchip_flash_hp0 | 0x00000000 | 0x00010000 |[I/FAL] | app | onchip_flash_hp1 | 0x00000000 | 0x000f8000 |[I/FAL] | download | onchip_flash_hp1 | 0x000f8000 | 0x001f0000 |[I/FAL] =============================================================[I/FAL] RT-Thread Flash Abstraction Layer initialize success.Press [Enter] key into shell in 1 s :[E/Qboot] Qboot firmware check fail. firmware infomation check fail.Jump to application running ...

Boot 工程运行后,会等待 1s 的时间,等待用户按键,如果用户有按下任意按键,则会停在Boot里,否则会自动跳转到APP工程。

 

机制原理

Boot工程利用FAL组件,将片上Flash进行了分区管理。分区表在程序启动时,会打印出来,见上面的日志。通过分区表可以看出片上Flash 被分成了 3 个分区(boot、app、download),具体的地址如下所示:

boot固件:存储boot固件,即当前 BOOT 工程的存储空间,大小为64KB,地址空间为:0x00000000 -> 0x0000FFFF

app固件:存储用户固件,地址空间为 0x00010000 -> 0x00108000

download分区:用于存储待升级固件,在app里下载好待升级的固件,写入此片区域后,boot会自动完成升级工作。地址空间为 0x00108000 -> 0x00200000

 

升级流程

OTA

 

APP工程制作方法

制作APP主要包括几个步骤:

修改链接脚本,调整固件地址处在app分区的开始

添加fal组件,获取当前分区状态

添加自己的方法,下载固件,并更新到download分区

具体制作时可以参考 sdk 里提供的 app 工程。

 

OTA 方法

OTA 的过程就是打包 app 工程的 bin 文件,生成待升级文件,然后分发到待升级设备上的工作。

打包固件

app工程编译完成之后会在Debug目录下生成rtthread.hex文件,我们需要从hex文件里提取出来这两个bin 文件,这里我们使用 app 工程 tool 目录下提供的hex2bin(https://github.com/Guozhanxin/hex2bin)小工具。它可以从rtthread.hex文件里分离出两个bin文件,其中0x10000结尾的是对应app分区的固件,也是我们要升级的固件。

  •  
  •  
  •  

$ hex2bin.exe rtthread.hex=> rtthread_0x10000.bin=> rtthread_0x100a150.bin

在boot工程的 packages/qboot-vxxx/tools 目录下有打包固件使用的工具QBootPackager。解压软件,双击打卡使用。

OTA

将打包生成的固件下载到flash上的download分区,然后重启,boot就会自动完成固件升级。

这一步可以配合app工程的ymodem下载工具完成

 

OTA APP 例程教学

简介
 

下面是 OTA 升级的 APP 工程说明。通过运行当前示例工程,可以学习如何利用 OTA 功能给开发板升级固件。注:当前例程需配合 boot 例程才能正常运行。

下面通过 RT-Thread studio 创建 OTA APP 工程(请在SDK Manager中提前安装 HMI-Board SDK):

OTA

使用说明

下载程序成功之后,系统会自动运行并打印系统信息。

连接开发板对应串口到 PC , 在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到RT-Thread 的输出信息。输入 help 命令可查看系统中支持的命令。

  •  
  •  
  •  
  •  
  •  

[E/Qboot] Qboot verify fail. firmware infomation check fail.[E/Qboot] Qboot firmware update fail. destination partition verify fail.Erasing download partition ...Qboot delete firmware success.Jump to application running ...\ | /- RT - Thread Operating System/ | \ 5.0.1 build Oct 27 2023 15:13:382006 - 2022 Copyright by RT-Thread teamHello RT-Thread at app![D/FAL] (fal_flash_init:47) Flash device | onchip_flash_hp0 | addr:0x00000000 | len: 0x00010000 | blk_size: 0x00002000 |initialized finish.[D/FAL] (fal_flash_init:47) Flash device | onchip_flash_hp1 | addr:0x00010000 | len: 0x001f0000 | blk_size: 0x00008000 |initialized finish.[D/FAL] (fal_partition_init:211) Find the partition table on 'onchip_flash_hp0'offset @0x0000b374.[I/FAL] ==================== FAL partition table ====================[I/FAL] | name | flash_dev | offset | length |[I/FAL] -------------------------------------------------------------[I/FAL] | boot | onchip_flash_hp0 | 0x00000000 | 0x00010000 |[I/FAL] | app | onchip_flash_hp1 | 0x00000000 | 0x000f8000 |[I/FAL] | download | onchip_flash_hp1 | 0x000f8000 | 0x001f0000 |[I/FAL] =============================================================[I/FAL] RT-Thread Flash Abstraction Layer initialize success.msh >

此工程自带了 ymodem_ota 命令,可配合支持 ymodem 协议的终端工具,发送升级包到系统。

注:支持 ymodem 协议的工具有 xshell,windterm 等,mobaxterm 和 putty 不支持!

OTAOTA

boot进入之后会自动检测download分区的待升级固件,并自动更新到app分区,完成升级。

1. 出现 Qboot verify fail. firmware infomation check fail. 这个日志不用管,ota 功能正常即可。

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分