http://www.moduwu.com 2026-04-24 10:00 來(lái)源:米爾電子
最近團(tuán)隊(duì)在評(píng)估RK3506做新一代工業(yè)HMI方案,踩了不少坑,今天聊點(diǎn)干貨。為啥最終選了LVGL而不是Qt?下面說(shuō)點(diǎn)大實(shí)話(huà)。

一線(xiàn)開(kāi)發(fā)者的扎心時(shí)刻
痛點(diǎn)1:存儲(chǔ)和內(nèi)存被“吃空”
RK3506 本身就是為低成本、高性?xún)r(jià)比設(shè)計(jì)的方案,板級(jí)內(nèi)存和 NAND 容量都不會(huì)給得太奢侈。在這種資源有限的平臺(tái)上,Qt 方案過(guò)于臃腫,一個(gè)基礎(chǔ)界面就能把內(nèi)存占掉一大截,再疊上業(yè)務(wù)邏輯和后臺(tái)服務(wù),壓力直接拉滿(mǎn)。很多低成本產(chǎn)品甚至沒(méi)法穩(wěn)定跑完 Qt 整個(gè)啟動(dòng)流程。
痛點(diǎn)2:Qt 啟動(dòng)慢、CPU 負(fù)載高
三核 A7 本身不帶 GPU,Qt 的 QML 渲染完全靠 CPU 硬扛,實(shí)測(cè)開(kāi)機(jī)到界面穩(wěn)定需要好幾秒,且日常界面幀率抖動(dòng)明顯。工業(yè) HMI 對(duì)實(shí)時(shí)交互有要求,卡頓感沒(méi)法接受。
痛點(diǎn)3:開(kāi)機(jī)速度不達(dá)標(biāo),客戶(hù)現(xiàn)場(chǎng)被吐槽
工控設(shè)備上電幾秒內(nèi)必須看到畫(huà)面,不然操作員以為機(jī)器壞了。用完整 Qt 框架+BSP 默認(rèn)配置,冷啟動(dòng)到界面顯示時(shí)間過(guò)長(zhǎng),在流水線(xiàn)場(chǎng)景完全不合格。
一、先認(rèn)識(shí)一下今天的主角:MYD-YR3506

圖:米爾基于RK3506核心板開(kāi)發(fā)板
米爾RK3506核心板:多種配置、工業(yè)級(jí)/商業(yè)級(jí)可選
基于國(guó)產(chǎn)新一代入門(mén)級(jí)工業(yè)處理器 瑞芯微RK3506B / RK3506J,三核Cortex-A7 + 單核Cortex-M0 架構(gòu),為工業(yè)場(chǎng)景深度優(yōu)化。

二、為什么在RK3506上選LVGL?這就是最優(yōu)解
LVGL (Light and Versatile Graphics Library) 專(zhuān)為資源受限的嵌入式設(shè)備設(shè)計(jì),純 C 實(shí)現(xiàn),不需要臃腫的 C++ 運(yùn)行時(shí)。對(duì) RK3506 這種“三核 A7 + 輕量級(jí)圖形通路”的芯片簡(jiǎn)直是絕配。
|
對(duì)比維度 |
LVGL |
Qt |
|
RAM基線(xiàn)占用 |
極低 |
高 |
|
圖形渲染CPU負(fù)載 |
低 |
高 |
|
啟動(dòng)耗時(shí) |
2秒左右 |
明顯更長(zhǎng) |
|
依賴(lài)與庫(kù)體積 |
純C,無(wú)運(yùn)行時(shí)額外依賴(lài) |
需C++標(biāo)準(zhǔn)庫(kù)、動(dòng)態(tài)鏈接器 |
*LVGL 實(shí)測(cè)數(shù)據(jù)來(lái)自RK3506平臺(tái),在深度優(yōu)化下界面流暢度明顯優(yōu)于Qt軟件渲染。
LVGL 在 RK3506 上的優(yōu)勢(shì):
▸ 輕量化內(nèi)存占用:完整界面系統(tǒng)僅需幾MB RAM,給業(yè)務(wù)代碼留足空間。
▸ 啟動(dòng)速度極快:無(wú)復(fù)雜依賴(lài),從初始化到首幀顯示耗時(shí)極短。
▸ 開(kāi)源且控件豐富:MIT 協(xié)議,內(nèi)置幾十種常用控件,適合工業(yè) HMI 快速開(kāi)發(fā)。
三、MYD-YR3506 跑 LVGL Demo:穩(wěn)、輕、快
MYIR 基于瑞芯微 RK3506 推出的 MYC-YR3506 核心板(搭配 MYD-YR3506 開(kāi)發(fā)板),原生適配了 LVGL 9.x 版本,并做了輕量級(jí)系統(tǒng)裁剪。我們團(tuán)隊(duì)在 Buildroot 環(huán)境下構(gòu)建了最小 Linux 系統(tǒng),集成 LVGL 完整控件庫(kù)和觸摸校準(zhǔn)服務(wù)。




四、2秒快速啟動(dòng):從 U-Boot 到顯示的全鏈路優(yōu)化
RK3506 本身具備極速啟動(dòng)能力,配合深度裁剪 LVGL 可以達(dá)到“上電即見(jiàn)”。實(shí)測(cè) MYIR 板卡進(jìn)入 LVGL 主界面僅需 2秒左右(內(nèi)核+根文件系統(tǒng))。關(guān)鍵優(yōu)化手段如下:
全鏈路“瘦身”三板斧
▸ U-Boot 加速:采用 Thunderboot 模式,SPL 跳過(guò)冗余外設(shè)檢測(cè),直接引導(dǎo)內(nèi)核。
▸ 內(nèi)核輕量化:關(guān)閉串口 printk 日志,禁用非必要外設(shè)驅(qū)動(dòng),僅保留 HDMI、USB 和網(wǎng)絡(luò)基礎(chǔ)模塊。
▸ Rootfs 精簡(jiǎn):基于 Buildroot 最小配置,僅保留 LVGL 主程序、觸摸后臺(tái)及系統(tǒng)核心進(jìn)程,去掉一切“花哨”自啟服務(wù)。
特別說(shuō)明 · HDMI 顯示的“真實(shí)情況”
很多工程師拿到板子測(cè)試時(shí)會(huì)疑惑:“為什么系統(tǒng)已經(jīng)啟動(dòng)了,屏幕還要黑幾秒才出畫(huà)面?” 在這里解釋一下:MYD-YR3506 目前僅設(shè)計(jì)了 HDMI 顯示輸出,而 HDMI 接口的握手協(xié)議(EDID 讀取、TMDS 信號(hào)鎖定)本身就需要較長(zhǎng)時(shí)間。即便 Linux 內(nèi)核已經(jīng)在后臺(tái)完成啟動(dòng),HDMI 顯示控制器初始化 + 顯示器熱插拔檢測(cè)仍然要額外消耗 一些時(shí)間。因此用戶(hù)看到了lvgl啟動(dòng)信息,但畫(huà)面卻延遲了幾秒左右才點(diǎn)亮。這不是 LVGL 啟動(dòng)慢,而是硬件接口協(xié)議帶來(lái)的客觀(guān)瓶頸。如果你的項(xiàng)目對(duì)“首屏?xí)r間”有極致要求,可以考慮選用 MIPI DSI 接口屏,其初始化速度遠(yuǎn)快于 HDMI。
五、不止于跑Demo:一些底層調(diào)優(yōu)經(jīng)驗(yàn)
真正在生產(chǎn)環(huán)境落地,我們針對(duì) RK3506+LVGL 做了一些硬核適配:
LVGL 顯示后端優(yōu)化:直接基于 DRM (Direct Rendering Manager) 進(jìn)行輸出,避免 FB 層額外拷貝;開(kāi)啟 LVGL 的緩存雙緩沖機(jī)制,實(shí)現(xiàn)流暢渲染。
輸入設(shè)備協(xié)同:使用 input 子系統(tǒng)讀取觸摸屏事件,通過(guò) evdev 驅(qū)動(dòng)無(wú)縫對(duì)接 LVGL,觸摸響應(yīng)延遲低于 15ms。
內(nèi)存動(dòng)態(tài)分配:對(duì) LVGL 的內(nèi)存池進(jìn)行精細(xì)化配置,利用 RK3506 的 CMA(連續(xù)內(nèi)存分配器)為 framebuffer 預(yù)留顯存,有效減少內(nèi)存碎片。
結(jié)語(yǔ):輕量化 ≠ 低效能,選對(duì)工具事半功倍
RK3506 在工業(yè) HMI、智慧家居、邊緣網(wǎng)關(guān)領(lǐng)域的定位非常明確——高性?xún)r(jià)比、多核異構(gòu)、豐富接口。對(duì)于大部分資源受限場(chǎng)景,LVGL 是實(shí)打?qū)嵉?ldquo;最優(yōu)解”。而 MYD-YR3506 開(kāi)發(fā)板不僅通過(guò) LVGL 釋放了芯片的性能潛力,還做了從 U-Boot 到應(yīng)用的全面啟動(dòng)加速。如果你也在選型中糾結(jié)“Qt 太重”,不妨花幾天時(shí)間切到 LVGL 試試,或許會(huì)打開(kāi)新大門(mén)。