- 博客(111)
- 资源 (1)
- 收藏
- 关注
原创 【奶茶Beta专项】【LVGL9.4源码分析】09-core-obj_scroll
【奶茶Beta专项】【LVGL9.4源码分析】09-core-obj_scroll。
2025-12-16 00:36:53
254
原创 【奶茶Beta专项】【LVGL9.4源码分析】09-core-obj_id_builtin
【奶茶Beta专项】【LVGL9.4源码分析】09-core-obj_id_builtin。
2025-12-16 00:35:26
197
原创 【奶茶Beta专项】【LVGL9.4源码分析】09-core-obj_pos
【奶茶Beta专项】【LVGL9.4源码分析】09-core-obj_pos。
2025-12-16 00:34:35
175
原创 【奶茶Beta专项】【LVGL9.4源码分析】09-core-obj_event
【奶茶Beta专项】【LVGL9.4源码分析】09-core-obj_event|
2025-12-16 00:33:51
224
原创 【奶茶Beta专项】【LVGL9.4源码分析】09-core-obj_class对象类系统
【奶茶Beta专项】【LVGL9.4源码分析】09-core-obj_class。
2025-12-14 19:06:40
283
原创 【奶茶Beta专项】【LVGL9.4源码分析】09-core-group
【奶茶Beta专项】【LVGL9.4源码分析】09-core-group。
2025-12-14 19:06:02
200
原创 【奶茶Beta专项】【LVGL9.4源码分析】09-core-global全局核心管理
本篇聚焦,从框架开发者视角解析 LVGL9.4 全局核心管理(global core)的设计思路与在系统中的定位,帮助读者弄清它如何串联 display、theme、输入设备等全局状态,以及对移植、多实例和调试的实际影响。通过结合典型使用场景和常见问题,本篇希望为读者提供一套“看得懂原理、用得稳、改得动”的全局管理认知框架,并给出在工程实践中评估与优化这部分设计的参考。
2025-12-14 19:05:14
888
原创 【奶茶Beta专项】【LVGL9.4源码分析】08-theme主题管理
本篇围绕目录,分析 LVGL9.4 主题系统(theme)的设计意图、总体定位与代码结构,说明主题在整体样式管理中的角色、典型使用方式,以及默认主题/单色主题/简化主题之间的差异。同时,从工程实践角度总结主题链(base theme)、可配置配色/字体、暗黑模式等机制的优势与局限,帮助读者在自己的项目中合理地复用或改造这套主题框架。得益于主题链与apply_cb/* 如果需要,先让 parent 主题处理(通常已经在 lv_theme.c 的 apply 逻辑中递归完成) */
2025-12-14 19:03:46
729
原创 【奶茶Beta专项】【LVGL9.4源码分析】07-API映射管理
本篇以为代表,系统性梳理 LVGL9.4 中“API 映射层”的角色与演进思路,重点说明这一层如何在 C 接口、语言绑定与版本演进之间充当“稳定外壳”,以及工程上该如何利用/扩展这套机制来降低升级成本、控制对外暴露的符号集合,而不过多展开具体用例细节。
2025-12-14 19:01:57
1177
原创 【奶茶Beta专项】【LVGL9.4源码分析】06-tick时间管理
本篇围绕目录,对 LVGL9.4 的tick 时间管理机制LVGL 的“时间”是如何定义和管理的?tick 与系统时钟、RTC、世界时间之间是什么关系?在不同平台(特别是 Linux)下,应如何对接 LVGL 的 tick?lv_tick_*与lv_timer、动画、输入设备刷新之间如何协同?这些设计的优势与局限在哪里,工程实践中有哪些常见踩坑点?另一种更“工程化”的做法,是开启 LVGL 的自定义 tick(如),让不再需要;所有地方通过做时间差计算。
2025-12-07 22:58:52
1120
原创 【奶茶Beta专项】【LVGL9.4源码分析】05-标准库
理解目录中 OS 抽象层在 LVGL 架构里的角色,以及它解决了什么问题;掌握在不同 OS(如 FreeRTOS、pthread、RT-Thread 等)下配置与使用 OS 抽象层的常见做法;通过接口分类的方式快速了解常用 API 的含义和典型用法;在项目选型和性能调优时,能够判断这种抽象方式的适用场景和可能带来的权衡。在lv_os.hlv_os.c加 LVGL 的“全局互斥锁”。(在LV_USE_OS!时)。中断上下文使用的加锁版本,对应。解锁全局互斥。各后端定义自己的。
2025-12-07 22:57:51
824
1
原创 【奶茶Beta专项】【LVGL9.4源码分析】04-OS抽象层
理解目录中 OS 抽象层在 LVGL 架构里的角色,以及它解决了什么问题;掌握在不同 OS(如 FreeRTOS、pthread、RT-Thread 等)下配置与使用 OS 抽象层的常见做法;通过接口分类的方式快速了解常用 API 的含义和典型用法;在项目选型和性能调优时,能够判断这种抽象方式的适用场景和可能带来的权衡。在lv_os.hlv_os.c加 LVGL 的“全局互斥锁”。(在LV_USE_OS!时)。中断上下文使用的加锁版本,对应。解锁全局互斥。各后端定义自己的。
2025-12-07 22:52:41
1114
原创 【奶茶Beta专项】【LVGL9.4源码分析】03-显示框架-display
本篇作为【奶茶Beta专项】【LVGL9.4源码分析】03-显示框架-*系列的总览篇,从整体层面对 LVGL9.4 的搭建对显示框架的“全景图”认识,理解在系统中的角色;把握刷新链路的关键阶段:分辨率、缓冲区、渲染模式、flush 回调、局部刷新与图层叠加等;理解显示框架与 draw 模块、tick/定时器之间的调用关系;知道后续子文档(分辨率管理、画布缓冲管理、局部刷新与脏区、图层管理、旋转方案、主题管理、内存和性能调试)各自负责的细节范围。
2025-12-02 01:53:00
870
原创 【奶茶Beta专项】【LVGL9.4源码分析】03-显示框架-内存和性能调试
本篇聚焦中perf_labelmem_label,结合中的实现,这些字段在 display 层的含义和彼此关系;LVGL9.4 中性能/内存监控机制的整体原理与数据流;与 8.4.0 版本在监控能力和集成方式上的差异;在实际项目中如何启用/关闭、查看和利用这些信息做性能与内存调试。
2025-12-02 01:52:08
946
原创 【奶茶Beta专项】【LVGL9.4源码分析】03-显示框架-旋转方案
本篇聚焦中rotation,结合这两个字段各自的含义与职责;9.4 中旋转方案的实现原理(逻辑旋转 vs 矩阵旋转)及其在刷新过程中的参与位置;与 8.4.0 版本旋转机制的差异与设计动机;不同方案在 MCU/SoC/PC 模拟器等平台上的适用场景、优劣势与使用示例。
2025-12-02 01:50:59
1379
原创 【奶茶Beta专项】【LVGL9.4源码分析】03-显示框架-主题管理
本篇聚焦中,并结合默认主题初始化逻辑(主题字段在 display 层的含义与作用;9.4 中主题系统的基本原理与调用流程;与 8.4.0 版本在 API 命名与职责划分上的差异;如何在项目中初始化/切换主题,以及在什么场景下适合使用主题;典型的主题定义方式与使用示例。本节以几种典型场景为例,说明如何在项目中配置与使用主题。/* 按钮统一使用主色背景与白色文字 *//* Label 使用正常字号 *//* ... 可继续为其他组件类型追加规则 ... */
2025-12-02 01:49:46
1040
原创 【奶茶Beta专项】【LVGL9.4源码分析】03-显示框架-图层管理
本篇聚焦 LVGL9.4 显示框架中的图层与屏幕管理模型:围绕中的layer_headlayer_initscreenssys_layertop_layeract_scrprev_scrscreen_cntdel_prev等字段,说明它们的含义、彼此关系,以及在刷新与屏幕切换流程中的作用。理解LVGL9.4 中“绘制图层(lv_layer_t链表)+ 屏幕对象(lv_obj_t)”的整体结构;搞清楚act_scrprev_scrtop_layersys_layer的叠加顺序;掌握。
2025-11-30 18:36:36
1035
1
原创 【奶茶Beta专项】【LVGL9.4源码分析】03-显示框架-局部刷新和脏区计算规则
本篇旨在帮助读者理解 LVGL9.4 显示框架中的“局部刷新”和“脏区(dirty area)计算”机制:弄清中与刷新状态、渲染模式、无效区域缓存相关的字段含义,理解从对象无效化到最终调用flush_cb之间的关键步骤,以及在双缓冲/直接渲染等场景下,如何通过合理配置减少无效刷新的开销,为后续的性能调优与问题排查提供参考。
2025-11-30 17:34:43
1170
原创 【奶茶Beta专项】【LVGL9.4源码分析】03-显示框架-画布缓冲管理
本篇旨在帮助读者系统理解 LVGL9.4 显示框架中的画布缓冲管理模型:掌握buf_1buf_2buf_3buf_act等画布缓冲相关字段的作用与协作方式,弄清它们与分辨率字段、渲染模式和显示刷新逻辑之间的关系,并在此基础上合理选择单缓冲、双缓冲或三缓冲配置,评估不同缓冲创建方式(对象 vs 裸缓冲)的优劣,为移植与性能优化提供参考。
2025-11-30 11:40:39
1038
原创 【奶茶Beta专项】【LVGL9.4源码分析】03-显示框架-分辨率管理
本篇聚焦中hor_resver_resoffset_xoffset_ydpi结合各字段的含义;字段之间的关系与典型使用场景;移植和多窗口/子区域显示中的常见配置方法与示例。
2025-11-30 10:25:04
1220
原创 【奶茶Beta专项】【LVGL9.4源码分析】02-编译框架-Cmake详解
理解 LVGL CMake 构建架构与核心配置掌握独立构建 LVGL 的方法与流程学习将 LVGL 集成到现有 CMake 项目的最佳实践了解 CMakePresets 预设配置的使用熟悉编译选项与特性开关的配置方式是 CMake 3.19+ 引入的预设配置文件,允许开发者定义预配置的构建场景,无需每次手动指定参数。
2025-11-21 04:23:07
828
原创 【奶茶Beta专项】【LVGL9.4源码分析】01-目录结构
本文档系统梳理了LVGL v9.4的源码目录结构与功能模块。核心内容包括: 源码结构:核心代码位于src/目录,涵盖对象系统、渲染驱动等组件;第三方库集成在src/libs/;平台适配层包括drivers/、osal/等。 示例资源:demos/提供完整场景测试样例(如音乐播放器、性能压测),examples/按功能细分(动画、布局、组件等),并支持多种编解码器和字体引擎。 开发指引:文档明确移植入口(显示/输入驱动)、硬件加速选择(如DMA2D/OpenGL ES)、测试方法(tests/和demos/s
2025-11-19 03:48:09
1068
原创 【奶茶Beta专项】【】00-总纲
今天终于想好安排哪段时间来推进奶茶(beta版)项目了。奶茶(alpha)项目是基于XSLVGL3.0来做的;而奶茶(beta)项目是基于XSLVGL4.0来做的。从性能上而言,9.4的LVGL比8.4的LVGL性能更好;而XSLVGL也将依据9.4的LVGL重新设计框架。以保证更好的服务于项目。
2025-11-19 02:01:06
729
原创 【嵌入式】关于push老仓库到新仓库的方法
公司项目经常会有需要从开源项目中镜像代码过来的活,所以常常会在自己的服务器上创建一个对应的仓库,然后使用命令将期push过去。为方便日后抄命令,这里记录一下使用的命令。
2024-11-18 12:03:21
419
原创 【嵌入式】关于xshell运行一些命令跳框阻止运行的问题
最近在ubuntu上调试音频功能,而使用的xshell工具老是跳一个框出来,不让我运行,很烦,特意查了一下原因。
2024-04-26 12:25:14
386
原创 【嵌入式】如何将多个图片转成一个GIF
此方法求图片大小是一致的,如果不是一样大的,会按第一张图片的大小生成最后的gif大小。-r 10 是设置输入图片的帧率,这样生成的也是按个帧率来生成的。-loop 0 表示无限循环。
2023-11-26 19:15:43
681
原创 【XSLVGL2.0】如何在其它线程内更新UI
项目常常会在其它线程更新UI的状态,但如果直接更新UI会导致UI数据异常从而使得UI挂死。这时只需要使用UI资源锁即可保证UI数据不会异常了。参考XSLVGL2.0 User Manual 页面管理器(v2.0)中和// 去操作UI。
2023-11-26 16:59:39
1104
1
原创 【XSLVGL2.0】如何注册焦点对象及焦点保存
LVGL的焦点多数是需要自己手动注册的,它被注册在lv_group_t对象中。XSLVGL2.0的焦点逻辑是独立管理的,它与每一个页面绑定。所以当页面切换时,不会存在焦点混乱的问题。另外,LVGL一些对象会向默认焦点组自动注册,该功能可能导致焦点中多出一些莫名奇妙的焦点对象出来。// 显示时同步焦点// 隐藏时保存焦点// 向焦点组注册焦点对象// 在这里加焦点事件组件。
2023-11-25 19:39:04
833
原创 【XSLVGL2.0】如何实现一个顶层图层对话框
当项目中要求一个页面显示在最顶层,不能被其它页面遮挡时,可以使用此方法。XSLVGL2.0提供了一个消息图层来处理这一逻辑。只需要将新创建的对象以此为父对象创建即可。
2023-11-25 19:26:14
708
原创 【XSLVGL2.0】如何做全局键功能和键值映射
项目常见需要配置一个按键,并要求短按此按键回到首页, 长按此按键进行关机。XSLVGL2.0在输入设备对接接口中,有一个回调,在此回调中可以直接收到输入设备上报的所有按键事件。一般这个功能实现放在main.c中。-1 : 0;} else {// 跳转到首页} else {// 关机} else {return -1;-1 : 0;} else {// 跳转到首页if (timer!
2023-11-25 18:58:59
587
原创 【XSLVGL2.0】如何监听供电状态(包含电池电量等)
XSLVGL2.0对供电状态进行了功能封装,这样能减少客户做一系列判定逻辑的代码,只需要根据不同的事件,显示不同的状态即可。根据XSLVGL2.0 User Manual 系统管理器(v2.0)中相关APIs的描述,只需要注册接口即可监听这一功能(一注册此接口即会返回当前新的状态)。case XSLV_POWER_SUPPLY_MODE_BATTERY: // 电池供电case XSLV_POWER_SUPPLY_MODE_BATTERY_CHARGING: // 充电中。
2023-11-25 18:14:41
688
原创 XSLVGL2.0 User Manual 主题管理器(v2.0)
LVGL本身是有主题功能的,但它是针对全局的配置,放在XSLVGL上,作为各个部分是拆分成页面的形式并不是特别友好。更直接点说,就是面对复杂的多页面切换时,这种方式不够灵活。
2023-11-25 18:00:08
1117
原创 XSLVGL2.0 User Manual 页面管理器(v2.0)
页面管理器是参考以下的模式建立的一套独立页面的管理功能。此套逻辑,保证LVGL在渲染页面时,仅渲染当前需要展示的页面,而其它页面会被放至后台栈中不会被渲染,以期提升渲染速度。
2023-11-23 15:17:31
639
TTF字体裁减工具。它在开源的sfnttool上修改而来,增加了以文件的方式来配置需要提取出来的字体内容。
2022-10-08
VIM配置文件,用于自动化配置VIM的。
2022-08-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅