隨著嵌入式設(shè)備對圖形用戶界面(GUI)的需求不斷提升,選擇一款高效、輕量且易于移植的GUI框架已成為項目開發(fā)中的關(guān)鍵環(huán)節(jié)。LVGL與Qt作為嵌入式領(lǐng)域廣泛使用的兩種GUI解決方案,在架構(gòu)設(shè)計、資源占用及適用場景等方面存在明顯區(qū)別:
LVGL是一款專為嵌入式及資源受限設(shè)備設(shè)計的輕量級開源圖形庫。其具備高度模塊化特性,內(nèi)存占用極低,支持多種顯示與輸入設(shè)備驅(qū)動,并可在無操作系統(tǒng)環(huán)境下運行,尤其適合對性能、功耗和成本有嚴(yán)格要求的嵌入式應(yīng)用場景。
Qt是一套功能豐富的跨平臺應(yīng)用開發(fā)框架,除GUI組件外,還提供網(wǎng)絡(luò)、數(shù)據(jù)庫、多媒體等完整功能模塊。盡管Qt for Embedded Linux功能全面,但其通常需要更多的系統(tǒng)資源,更適合硬件資源較為充裕的嵌入式平臺,例如工業(yè)人機(jī)界面(HMI)、車載信息娛樂系統(tǒng)等。
本文將以LVGL8.2版本的移植為例,旨在為開發(fā)者提供一套清晰實用的輕量化圖形界面移植指南,幫助用戶快速構(gòu)建流暢、美觀的嵌入式圖形應(yīng)用。
一、源碼獲取來源
git clone -b release/v8.2 https://github.com/lvgl/lv_port_linux_frame_buffer.git git clone -b release/v8.2 https://github.com/lvgl/lvgl.git git clone -b release/v8.2 https://github.com/lvgl/lv_drivers.git
將lvgl和lv_drivers文件夾拷貝到lv_port_linux_frame_buffer文件夾下。
二、相關(guān)文件修改
注意:分辨率設(shè)置以板卡默認(rèn)適配的MIPI屏幕規(guī)格為準(zhǔn)進(jìn)行修改。
2.1修改lv_port_linux_frame_buffer/lv_conf.h文件
elf@ubuntu:~/work/lvgl8.2$vi lv_port_linux_frame_buffer/lv_conf.h
修改第15行, 使能該文件;

修改第27行,修改顯示顏色位深;

修改第49行,使能顯存分配;

修改第672行,使能編譯demo;

2.2 修改lv_port_linux_frame_buffer/lv_drv_conf.h文件
elf@ubuntu:~/work/lvgl8.2$vi lv_port_linux_frame_buffer/lv_drv_conf.h
修改第11行,使能該文件;

修改第319行,使能fb顯示;

修改第442行,使能觸摸板觸摸;

修改第450行,綁定觸摸事件,可以通過evtest命令查看屏幕對應(yīng)的觸摸節(jié)點,輸入evtest,輸入指定編號,觸摸屏幕會有坐標(biāo)點顯示到調(diào)試串口;

修改第453行,使能屏幕分辨率配置;

修改第457行、459行,指定屏幕水平像素和垂直像素;

2.3 修改lv_port_linux_frame_buffer/main.c文件
elf@ubuntu:~/work/lvgl8.2$vi lv_port_linux_frame_buffer/main.c
修改第10行,指定顯存大小;

修改第32行、33行,指定屏幕分辨率;

2.4 修改lv_port_linux_frame_buffer/Makefile文件
elf@ubuntu:~/work/lvgl8.2$vi lv_port_linux_frame_buffer/Makefile
修改第4行,指定交叉編譯器;

修改第7行,用#號注釋掉后面內(nèi)容;

三、源碼編譯
在lv_port_linux_frame_buffer目錄下執(zhí)行make -j4編譯源碼;
elf@ubuntu:~/work/lvgl8.2$ cd lv_port_linux_frame_buffer/ elf@ubuntu:~/work/lvgl8.2/lv_port_linux_frame_buffer$ make -j4
最后會在lv_port_linux_frame_buffer目錄下生成demo可執(zhí)行文件;
elf@ubuntu:~/work/lvgl8.2/lv_port_linux_frame_buffer$ls demo demo
四、測試
使用u盤拷貝demo到開發(fā)板中;
關(guān)閉掉Weston桌面;
root@elf2-buildroot:~#/etc/init.d/S49westonstop
運行demo應(yīng)用;
root@elf2-buildroot:~# ./demo
顯示效果如下:
-
單片機(jī)
+關(guān)注
關(guān)注
6072文章
45302瀏覽量
662329 -
嵌入式
+關(guān)注
關(guān)注
5184文章
20110瀏覽量
327829 -
Linux
+關(guān)注
關(guān)注
88文章
11604瀏覽量
217654 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
6090瀏覽量
112293 -
RK3588
+關(guān)注
關(guān)注
8文章
480瀏覽量
7009
發(fā)布評論請先 登錄
Banana Pi開源社區(qū)基于瑞芯微RK3588開發(fā)板,DeepSeek開發(fā)利器
ElfBoard技術(shù)貼|如何在【RK3588】ELF 2開發(fā)板上進(jìn)行根系統(tǒng)的定制
ElfBoard技術(shù)貼|如何在【RK3588】ELF 2開發(fā)板上進(jìn)行UART引腳復(fù)用配置
瑞芯微旗艦芯RK3588開發(fā)板開售 比亞迪為應(yīng)達(dá)利頒獎
【首發(fā)開箱】揭開RK3588開發(fā)板的神秘面紗!
rk3588有哪些開發(fā)板?
技術(shù)分享|iTOP-RK3588開發(fā)板Ubuntu20系統(tǒng)旋轉(zhuǎn)屏幕方案
ElfBoard技術(shù)貼|【RK3588】ELF 2開發(fā)板開機(jī)自啟動詳解
ElfBoard技術(shù)貼|如何在【RK3588】ELF 2開發(fā)板用戶空間更換開機(jī)Logo

ElfBoard技術(shù)貼|如何在【RK3588】ELF 2開發(fā)板移植LVGL8.2
評論