硬件平臺
HMI-Board 為 RT-Thread 聯(lián)合瑞薩推出的高性價比圖形評估套件,取代傳統(tǒng)的HMI + 主控板硬件,一套硬件即可實現(xiàn) HMI + IoT + 控制 的全套能力。依托于瑞薩高性能芯片 RA6M3及 RT-Thread 軟件生態(tài),HMI Board 不僅硬件性能強(qiáng)勁,同時軟件生態(tài)豐富,助力開發(fā)者快速開發(fā)出GUI 智能硬件產(chǎn)品。
OTA Boot 例程教學(xué)
簡介
首先需要燒錄 OTA 升級的 Boot 工程。通過運(yùn)行當(dāng)前示例工程,可以學(xué)習(xí)如何利用 OTA 功能給開發(fā)板升級固件。當(dāng)前例程使用 qboot 軟件包,完成升級業(yè)務(wù)。
燒錄此工程之后,可配合APP示例工程,體驗OTA升級功能,或按照下方制作APP的教程,自己制作可升級的APP。
下面通過 RT-Thread studio 創(chuàng)建 OTA Boot 工程(請在SDK Manager中提前安裝 HMI-Board SDK):
使用說明
下載程序成功之后,系統(tǒng)會自動運(yùn)行并打印系統(tǒng)信息。
連接開發(fā)板對應(yīng)串口到 PC , 在終端工具里打開相應(yīng)的串口(115200-8-1-N),復(fù)位設(shè)備后,可以看到RT-Thread 的輸出信息。輸入 help 命令可查看系統(tǒng)中支持的命令。
\ | /- 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 工程運(yùn)行后,會等待 1s 的時間,等待用戶按鍵,如果用戶有按下任意按鍵,則會停在Boot里,否則會自動跳轉(zhuǎn)到APP工程。
機(jī)制原理
Boot工程利用FAL組件,將片上Flash進(jìn)行了分區(qū)管理。分區(qū)表在程序啟動時,會打印出來,見上面的日志。通過分區(qū)表可以看出片上Flash 被分成了 3 個分區(qū)(boot、app、download),具體的地址如下所示:
boot固件:存儲boot固件,即當(dāng)前 BOOT 工程的存儲空間,大小為64KB,地址空間為:0x00000000 -> 0x0000FFFF
app固件:存儲用戶固件,地址空間為 0x00010000 -> 0x00108000
download分區(qū):用于存儲待升級固件,在app里下載好待升級的固件,寫入此片區(qū)域后,boot會自動完成升級工作。地址空間為 0x00108000 -> 0x00200000
升級流程
APP工程制作方法
制作APP主要包括幾個步驟:
修改鏈接腳本,調(diào)整固件地址處在app分區(qū)的開始
添加fal組件,獲取當(dāng)前分區(qū)狀態(tài)
添加自己的方法,下載固件,并更新到download分區(qū)
具體制作時可以參考 sdk 里提供的 app 工程。
OTA 方法
OTA 的過程就是打包 app 工程的 bin 文件,生成待升級文件,然后分發(fā)到待升級設(shè)備上的工作。
打包固件
app工程編譯完成之后會在Debug目錄下生成rtthread.hex文件,我們需要從hex文件里提取出來這兩個bin 文件,這里我們使用 app 工程 tool 目錄下提供的hex2bin(https://github.com/Guozhanxin/hex2bin)小工具。它可以從rtthread.hex文件里分離出兩個bin文件,其中0x10000結(jié)尾的是對應(yīng)app分區(qū)的固件,也是我們要升級的固件。
$ hex2bin.exe rtthread.hex=> rtthread_0x10000.bin=> rtthread_0x100a150.bin
在boot工程的 packages/qboot-vxxx/tools 目錄下有打包固件使用的工具QBootPackager。解壓軟件,雙擊打卡使用。
將打包生成的固件下載到flash上的download分區(qū),然后重啟,boot就會自動完成固件升級。
這一步可以配合app工程的ymodem下載工具完成
OTA APP 例程教學(xué)
簡介
下面是 OTA 升級的 APP 工程說明。通過運(yùn)行當(dāng)前示例工程,可以學(xué)習(xí)如何利用 OTA 功能給開發(fā)板升級固件。注:當(dāng)前例程需配合 boot 例程才能正常運(yùn)行。
下面通過 RT-Thread studio 創(chuàng)建 OTA APP 工程(請在SDK Manager中提前安裝 HMI-Board SDK):
使用說明
下載程序成功之后,系統(tǒng)會自動運(yùn)行并打印系統(tǒng)信息。
連接開發(fā)板對應(yīng)串口到 PC , 在終端工具里打開相應(yīng)的串口(115200-8-1-N),復(fù)位設(shè)備后,可以看到RT-Thread 的輸出信息。輸入 help 命令可查看系統(tǒng)中支持的命令。
[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 協(xié)議的終端工具,發(fā)送升級包到系統(tǒng)。
注:支持 ymodem 協(xié)議的工具有 xshell,windterm 等,mobaxterm 和 putty 不支持!
boot進(jìn)入之后會自動檢測download分區(qū)的待升級固件,并自動更新到app分區(qū),完成升級。
1. 出現(xiàn) Qboot verify fail. firmware infomation check fail. 這個日志不用管,ota 功能正常即可。
-
OTA
+關(guān)注
關(guān)注
7文章
584瀏覽量
35327 -
HMI
+關(guān)注
關(guān)注
9文章
593瀏覽量
48641 -
RT-Thread
+關(guān)注
關(guān)注
31文章
1303瀏覽量
40287
發(fā)布評論請先 登錄
相關(guān)推薦
評論