通過(guò)Ubuntu虛擬機(jī)+Linux移植LVGL并通過(guò)linux Frame buffer顯示
文章參考:https://gitee.com/socbis/linux-lvgl
lvgl on linux Frame buffer
主機(jī)環(huán)境: Ubuntu 18.04
lvgl 8.0.1
獲取源碼并運(yùn)行demo
-
獲取源碼
需要3樣?xùn)|西來(lái)構(gòu)建demo :
lvgl核心控件庫(kù): 從此處獲取源碼 lvgl,選擇版本 Release v8.0.1.顯示和觸摸接口層: 關(guān)聯(lián)圖形庫(kù)與硬件,源碼 lv_drivers,選擇版本 v8.0.lv_demo 源碼: 源碼 lv_demos, 同樣選擇版本 v8.0.
最終得到三個(gè)壓縮包:
lvgl-8.0.1.tar.gzlv_drivers-release-v8.0.ziplv_demos-release-v8.0.zip
-
創(chuàng)建文件夾并解壓源碼:
mkdir lvgl_linux cd lvgl_linux # 復(fù)制上述壓縮包到此處 . # 解壓 tar xvf lvgl-8.0.1.tar.gz unzip lv_drivers-release-v8.0.zip unzip lv_demos-release-v8.0.zip # 重命名解壓后的文件夾 mv lvgl-8.0.1 lvgl mv lv_drivers-release-v8.0 lv_drivers mv lv_demos-release-v8.0 lv_demos # delete zip tar rm lv_drivers-release-v8.0.zip lv_demos-release-v8.0.zip lvgl-8.0.1.tar.gz ls lv_demos lv_drivers lvgl -
獲取配置文件
- 核心庫(kù)配置文件 :
lv_conf.h - 驅(qū)動(dòng)配置文件 :
lv_drv_conf.h - demo配置文件 :
lv_demo_conf.h
# 基于配置模板創(chuàng)建 cp lvgl/lv_conf_template.h lv_conf.h cp lv_drivers/lv_drv_conf_template.h lv_drv_conf.h cp lv_demos/lv_demo_conf_template.h lv_demo_conf.h ls lv_conf.h lv_demo_conf.h lv_demos lv_drivers lv_drv_conf.h lvgl修改配置文件:
-
使能,將3個(gè)文件
#if 0改為#if 1/*Set it to "1" to enable content*/ -
修改
lv_drv_conf.h:# define USE_FBDEV 1 # define USE_EVDEV 1 -
修改
lv_demo_conf.h:#define LV_USE_DEMO_WIDGETS 1 -
修改
lv_conf.h:配置
Tick interface:#define LV_TICK_CUSTOM 1 #if LV_TICK_CUSTOM #define LV_TICK_CUSTOM_INCLUDE <stdint.h> /*Header for the system time function*/ extern uint32_t custom_tick_get(void); #define LV_TICK_CUSTOM_SYS_TIME_EXPR (custom_tick_get()) /*Expression evaluating to current system time in ms*/ #endif /*LV_TICK_CUSTOM*/使能 12,16 號(hào)字體:
#define LV_FONT_MONTSERRAT_12 1 #define LV_FONT_MONTSERRAT_14 1 #define LV_FONT_MONTSERRAT_16 1設(shè)置堆大小:
-
使用 lvgl 內(nèi)建內(nèi)存分配方案:
配置堆大小,實(shí)測(cè) 2KB 無(wú)法啟動(dòng)demo,我給 2MB# define LV_MEM_SIZE (2 * 1024U * 1024U) /*[bytes]*/ -
使用 linux 系統(tǒng)內(nèi)存分配:使能宏
#define LV_MEM_CUSTOM 1即可
-
- 核心庫(kù)配置文件 :
-
編寫(xiě)主程序和Makefile
main.c參考自 lv_port_linux_frame_buffer/blob/release/v8.2/main.cmain.c 中修改
lv_demo.h路徑:#include "lv_demos/lv_demo.h"Makefile參考自 lv_port_linux_frame_buffer/blob/release/v8.2/Makefile同時(shí)還要把Makefile同級(jí)目錄下的mouse_cursor_icon.c復(fù)制過(guò)來(lái)Makefile 做如下修改:
CC = arm-linux-gnueabihf-gcc include $(LVGL_DIR)/lv_demos/lv_demo.mk CSRCS +=$(LVGL_DIR)/mouse_cursor_icon.c -
make生成demo -
參考官方的文檔手冊(cè)操作讓其在Ubuntu上能顯示:https://blog.lvgl.io/2018-01-03/linux_fb
1、Ctrl + Alt + F6切換TTF(也有可能是Ctrl + Alt + F1 /Ctrl + Alt + F4等,切換不了就多試下)
2、sudo su切換用戶
3、service lightdm stop
4、./demo,即可看到官方demo了(只能看,不能操作,鼠標(biāo)看不到,需要再研究下)
5、service lightdm start即可切換回linux桌面ttf
本文由博客一文多發(fā)平臺(tái) OpenWrite 發(fā)布!
本文來(lái)自博客園,作者:xjxcxjx,轉(zhuǎn)載請(qǐng)注明原文鏈接:http://www.rzrgm.cn/xjxcxjx/p/18203775,謝絕CSDN轉(zhuǎn)載!
浙公網(wǎng)安備 33010602011771號(hào)