硬件平臺
HMI-Board 為 RT-Thread 聯合瑞薩推出的高性價比圖形評估套件,取代傳統的HMI + 主控板硬件,一套硬件即可實現 HMI + IoT + 控制 的全套能力。依托于瑞薩高性能芯片 RA6M3及 RT-Thread 軟件生態,HMI Board 不僅硬件性能強勁,同時軟件生態豐富,助力開發者快速開發出GUI 智能硬件產品。
OTA Boot 例程教學
簡介
首先需要燒錄 OTA 升級的 Boot 工程。通過運行當前示例工程,可以學習如何利用 OTA 功能給開發板升級固件。當前例程使用 qboot 軟件包,完成升級業務。
燒錄此工程之后,可配合APP示例工程,體驗OTA升級功能,或按照下方制作APP的教程,自己制作可升級的APP。
下面通過 RT-Thread studio 創建 OTA Boot 工程(請在SDK Manager中提前安裝 HMI-Board SDK):
使用說明
下載程序成功之后,系統會自動運行并打印系統信息。
連接開發板對應串口到 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
升級流程
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。解壓軟件,雙擊打卡使用。
將打包生成的固件下載到flash上的download分區,然后重啟,boot就會自動完成固件升級。
這一步可以配合app工程的ymodem下載工具完成
OTA APP 例程教學
簡介
下面是 OTA 升級的 APP 工程說明。通過運行當前示例工程,可以學習如何利用 OTA 功能給開發板升級固件。注:當前例程需配合 boot 例程才能正常運行。
下面通過 RT-Thread studio 創建 OTA APP 工程(請在SDK Manager中提前安裝 HMI-Board SDK):
使用說明
下載程序成功之后,系統會自動運行并打印系統信息。
連接開發板對應串口到 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 不支持!
boot進入之后會自動檢測download分區的待升級固件,并自動更新到app分區,完成升級。
1. 出現 Qboot verify fail. firmware infomation check fail. 這個日志不用管,ota 功能正常即可。
-
OTA
+關注
關注
7文章
606瀏覽量
36289 -
HMI
+關注
關注
9文章
632瀏覽量
49798 -
RT-Thread
+關注
關注
32文章
1377瀏覽量
41619
發布評論請先 登錄
使用DAPLink在對HMI-Board進行固件燒錄,棧溢出如何解決?
AliOS Things 3.0 開發:OTA之壓縮升級快速上手
AliOS Things 3.0 開發:OTA之差分升級快速上手
ModelSim快速上手指南
AliOS Things 3.0開發教程合集免費下載
限量預售|2D加速、JPEG硬解、超高性價比M4芯片,您的圖形評估利器——HMI-Board來啦!

聯合發布 | 2D加速、JPEG硬解、超高性價比M4芯片,您的圖形評估利器——HMI-Board來啦!

怎么解決HMI-Board在調試4bitSDHI掛載文件系統失敗的問題呢?

瑞薩RA6M3 HMI-Board Video Demo 上手指南

【直播預告】HMI-Board Windows32

RA6M3 RT-Thread* LVGL HMI Board開發實踐指南-GPIO實踐

評論