网站首页 > 开源技术 正文
LVGL (Light and Versatile Graphics Library) is a free and open-source graphics library providing everything you need to create an embedded GUI with easy-to-use graphical elements, beautiful visual effects and a low memory footprint.
We are delighted to announce that Xiaomi has chosen LVGL for their latest S1 Pro Smart Watch. We received a sample from them and it looks phenomenal. We couldn’t be more thrilled to work with such an innovative company.
有时候从github下载.zip比用git clone快,反正我下载到了lvgl-master.zip。建立一个目录try,从lvgl下复制几个文件和目录过来,ls -F try/lvgl:
lv_conf.h lvgl.h lvgl.mk lv_version.h src/
src是个目录,用cp -a复制。a代表archive(归档),same as -dR --preserve=all,d代表目录,R代表递归(recursive)。
lv_conf.h是lv_conf_template.h改名来的。第一个#if 0要改成1,LV_USE_X11也要改成1:
#if 1 /*Set it to "1" to enable content*/
...
#define LV_COLOR_DEPTH 24
...
/*Use X11 to open window on Linux desktop and handle mouse and keyboard*/
#define LV_USE_X11 1
没有试其它COLOR DEPTH。我的Linux桌面的是24,用xwininfo -root | grep Depth看到的。
lvgl.mk:
LVGL_PATH ?= ${shell pwd}/lvgl
ASRCS += $(shell find $(LVGL_PATH)/src -type f -name '*.S')
CSRCS += $(shell find $(LVGL_PATH)/src -type f -name '*.c')
CSRCS += $(shell find $(LVGL_PATH)/demos -type f -name '*.c')
CSRCS += $(shell find $(LVGL_PATH)/examples -type f -name '*.c')
CXXEXT := .cpp
CXXSRCS += $(shell find $(LVGL_PATH)/src -type f -name '*${CXXEXT}')
AFLAGS += "-I$(LVGL_PATH)"
CFLAGS += "-I$(LVGL_PATH)"
CXXFLAGS += "-I$(LVGL_PATH)"
在try目录下编辑个Makefile:
include lvgl/lvgl.mk
# 替换扩展名
Os = $(CXXSRCS:.cpp=.o) \
$(CSRCS:.c=.o)
a.out: t.o liblvgl.a
# 下一行的首字符应为TAB
$(CC) -o $@ $^ -lX11
liblvgl.a: $(Os)
# 下一行的首字符应为TAB
ar r $@ $(Os)
Linux下的库叫libxxx.a,ar - create, modify, and extract from archives。r Insert the files member... into archive (with replacement).
然后make。LVGL里有汇编代码,如neon相关的。编译lvgl/src/draw/sw/blend/neon/lv_blend_neon.S时找不到../../lv_conf.h。因为没有用到所以没去管它,没编译进liblvgl.a。
运行a.out出来个名为LVGL X11 Simulation的空白窗口,分辨率为800x600。
t.cpp:
#include <lvgl.h>
int main() {
lv_init();
/* initialize X11 display driver */
lv_display_t * disp = lv_x11_window_create("LVGL X11 Simulation", 800, 600);
/* initialize X11 input drivers (for keyboard, mouse & mousewheel) */
lv_x11_inputs_create(disp, NULL);
while (1) {
/* Periodically call the lv_timer handler */
lv_timer_handler();
}
return 0;
}
吐槽:
- 示例X11的代码没调lv_init;没调的后果是core dump。
- 风扇狂转。lv_timer_handler()的循环里该sleep吧?time.h里有nanosleep。
- Proteus叫仿真(比如x64 Windows下仿真8051),把一个窗口当屏幕用也敢叫仿真?
- 像在下这样写文档,Linux取代Windows才更有希望。[微笑]
猜你喜欢
- 2024-12-28 深度学习(计算机视觉方向)入门的一些建议
- 2024-12-28 既然敢于炮轰C++,那么Linus的C++编程水平如何呢?
- 2024-12-28 Rider 2020.1 发布,要抢VS饭碗啦!
- 2024-12-28 Spring 替代方案。Solon v3.0.3 发布
- 2024-12-28 「Flutter」分享一些我收藏的优秀示例源码和常用组件
- 2024-12-28 什么是可升级的智能合约?帮你解决合约一旦部署无法更改的问题
- 2024-12-28 CodeQL学习笔记 codeql github
- 2024-12-28 运维太忙?那是你还没掌握 Ansible
- 2024-12-28 YOLO对象检测模型更新无止境—— YOLOv9模型会不会是最终版本
- 2024-12-28 Gitbook +Typora打造属于自己的Python网站
你 发表评论:
欢迎- 05-16东契奇:DFS训练时喷了我很多垃圾话 我不懂他为什么比赛不这么干
- 05-16这两球很伤!詹姆斯空篮拉杆不中 DFS接里夫斯传球空接也没放进
- 05-16湖人自媒体调查:89%球迷希望DFS回归79%希望詹姆斯回归
- 05-16Shams:湖人得到全能球员DFS 节省了1500万奢侈税&薪金空间更灵活
- 05-16G5湖人胜率更高!詹姆斯不满判罚,DFS谈5人打满下半场:这很艰难
- 05-16DFS:当东契奇进入状态 所有防守者在他面前都像个圆锥桶
- 05-16上一场9中6!DFS:不能让纳兹-里德这样的球员那么轻松地投三分
- 05-16WIDER FACE评测结果出炉:滴滴人脸检测DFS算法获世界第一
- 最近发表
-
- 东契奇:DFS训练时喷了我很多垃圾话 我不懂他为什么比赛不这么干
- 这两球很伤!詹姆斯空篮拉杆不中 DFS接里夫斯传球空接也没放进
- 湖人自媒体调查:89%球迷希望DFS回归79%希望詹姆斯回归
- Shams:湖人得到全能球员DFS 节省了1500万奢侈税&薪金空间更灵活
- G5湖人胜率更高!詹姆斯不满判罚,DFS谈5人打满下半场:这很艰难
- DFS:当东契奇进入状态 所有防守者在他面前都像个圆锥桶
- 上一场9中6!DFS:不能让纳兹-里德这样的球员那么轻松地投三分
- WIDER FACE评测结果出炉:滴滴人脸检测DFS算法获世界第一
- 湖人自媒体调查:89%球迷希望DFS回归 79%希望詹姆斯回归
- 一觉醒来湖人苦盼的纯3D终于到位 DFS能带给紫金军多少帮助
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)