自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

smallerxuan的博客

点滴汇聚,终成其大。

  • 博客(201)
  • 资源 (4)
  • 收藏
  • 关注

原创 一个关于可乐瓶的笑话

一个关于可乐瓶的笑话

2026-09-03 07:05:40 180

原创 VMware 虚拟机中 Ubuntu 20.04 网络连接异常排查修复全记录

本文详细记录了VMware虚拟机中Ubuntu2004下网络连接异常问题的排查、修复过程。

2026-09-03 06:40:42 3305

原创 一个 关于 桃子的 笑话

一个 关于 桃子的 笑话

2026-09-02 09:13:06 202

原创 基于 ESP-IDF 5.2 + LVGL 8.4 + MVL 0.1.0 实现带UI的 wifi 扫描

LVGL 8.x 不是线程安全的,多任务直接调用 lv_*() 易致 HardFault 与画面撕裂。本文以一个真机跑通的 WiFi 扫描 Demo 为例,讲解如何基于 ESP-IDF 5.2 + LVGL 8.4 + MVL 0.1.0 落地「单写者原则」:后台任务经消息队列 与事件总线投递状态,LVGL 主任务统一消费并刷新界面;接线关系以 YAML 为唯一 事实源,骨架代码由 mvl-gen 生成且手写代码不丢。读完可复现一个 UI 不阻塞、 线程不踩线的完整工程。

2026-09-02 08:59:22 8656

原创 00 常见软件滤波算法介绍(经典十种 + 卡尔曼滤波)

常见软件滤波算法介绍(经典十种 + 卡尔曼滤波)

2026-09-01 07:33:42 990

原创 11. 卡尔曼滤波(Kalman Filter)

卡尔曼滤波(Kalman Filter)法

2026-09-01 07:20:43 4091

原创 (八)LVGL 8.3.11 移植与应用实战:图片解码 —— 格式、缓存与性能

图片解码(格式、缓存与性能) lv_img 统一走 lv_img_decoder 接口(info/open/read_line/close),按行解码避免整图驻留 RAM。

2026-09-01 07:12:22 5119

原创 (七)LVGL 8.3.11 移植:字库系统 —— 原理、转换与动态加载

字库系统(原理、转换与动态加载) 字体本质是字模位图 + glyph_dsc 描述表(bpp 灰度、kerning、Unicode 映射),内置 Montserrat 不含汉字。核心矛盾是 Flash 占用:GB2312 全集 24px/bpp4 约 2MB 超出 F429 的 1MB Flash。对策三条:裁剪字符集,用在线转换器或 lv_conv;bin 放 SD 卡经 lv_font_load() 加载;或启用 FreeType。

2026-09-01 07:10:06 4546

原创 (六)LVGL 8.3.11 移植:性能优化、抗锯齿与内存管理

性能优化、抗锯齿与内存 先用 LV_USE_PERF_MONITOR/LV_USE_MEM_MONITOR 量化瓶颈再优化。DMA2D 加速可降 CPU 30%~60%(F429 无 D-Cache;F7/H7 需在 flush 前清 Cache)。抗锯齿:LV_ANTIALIAS 默认开、字体 bpp=4,慎用阴影与大圆角,图片避免运行时缩放。内存管理推荐 LV_MEM_ADR 把 TLSF 堆搬到 SDRAM(避开帧缓冲并对齐),关注碎片率(<30%)甚于已用量,配合控件复用、隐藏代替删除。

2026-09-01 07:06:49 4863

原创 (五)LVGL 8.3.11 移植:FreeRTOS 操作系统适配

FreeRTOS 操作系统适配 LVGL 非线程安全,推荐"全局互斥锁"路线:用 xSemaphoreCreateMutex 创建 GUI 互锁(自带优先级继承,不能用二值信号量),任何 lv_* 调用(含 lv_timer_handler())都必须持锁。时基用 HAL_SYSTICK_Callback 喂 lv_tick_inc(1) 或 LV_TICK_CUSTOM 配 xTaskGetTickCount();利用 lv_timer_handler() 返回值动态延时并钳位 5~20ms。

2026-09-01 07:01:32 6116

原创 (四)LVGL 8.3.11 移植:文件系统适配 —— FatFS 与 SD 卡

文件系统适配(FatFS 与 SD 卡) 利用 lv_fs_drv_t 抽象层把 open/close/read/seek 等回调桥接到 f_open/f_read/f_lseek 等 FatFS API,盘符(如 "S:/")仅用于路由。关键细节:FIL 句柄须用 lv_mem_alloc 动态分配以支持并发;seek 需自行换算 CUR/END 偏移;多任务下必须开启 FF_FS_REENTRANT 并实现互斥锁。建议 SD 卡用 SDIO 4bit 模式。

2026-09-01 06:57:44 4550

原创 (三)LVGL 8.3.11 移植:触摸输入移植 —— GT9147 与 lv_indev

触摸输入移植(GT9147 与 lv_indev) 输入抽象为 lv_indev_drv_t(POINTER/KEYPAD/ENCODER/BUTTON),只需实现 read 回调,LVGL 按 30ms 周期调用。

2026-09-01 06:54:00 3846

原创 (二)LVGL 8.3.11 移植:显示子系统移植 —— LTDC + DMA2D

显示子系统移植(LTDC 与 DMA2D) 核心思路:LVGL 渲染脏区域,LTDC 免 CPU 扫描 SDRAM 帧缓冲,DMA2D 负责搬运与混合。给出 RGB 屏时参数(像素时钟 25~33MHz、RGB565)与 LTDC 层配置,对比三种缓冲模式:单缓冲阻塞拷贝、双局部缓冲(中断中调 lv_disp_flush_ready())、以及推荐的全屏双缓冲 + full_refresh + HAL_LTDC_SetAddress 地址翻转——借影子寄存器在 VSYNC 生效,结构性杜绝撕裂且零拷贝。

2026-09-01 06:49:28 4231

原创 (一)LVGL 8.3.11 移植:总览

STM32F429 移植 LVGL8.3.11系列总览篇,面向 STM32F429IGT6 + 800×480 RGB 屏 + SDRAM + SD 卡 + FreeRTOS 平台。

2026-09-01 06:41:19 2817

原创 10. 限幅消抖滤波法

限幅消抖滤波法

2026-08-31 10:59:27 671

原创 09. 消抖滤波法

消抖滤波法

2026-08-31 10:58:24 713

原创 08. 加权递推平均滤波法

加权递推平均滤波法

2026-08-31 10:57:25 730

原创 07. 一阶滞后滤波法(低通)

一阶滞后滤波法(低通)

2026-08-31 10:55:02 716

原创 06. 限幅平均滤波法

限幅平均滤波法

2026-08-31 10:53:42 529

原创 05. 中位值平均滤波法(又称防脉冲干扰平均滤波法)

中位值平均滤波法(又称防脉冲干扰平均滤波法)

2026-08-31 10:52:32 2637

原创 04. 递推平均滤波法(又称滑动平均滤波法)

递推平均滤波法(又称滑动平均滤波法)

2026-08-31 10:51:15 184

原创 03. 算术平均滤波法

算术平均滤波法

2026-08-31 10:49:00 178

原创 02. 中位值滤波法

中位值滤波法

2026-08-31 10:47:45 193

原创 01. 限幅滤波法(又称程序判断滤波法)

限幅滤波法(又称程序判断滤波法)。

2026-08-31 10:45:07 316

原创 [行业话谈] 图片拼接&OCR识别-扫读笔的底层技术

本文简单分析了扫读笔(词典笔)的两大核心技术:图片拼接与 OCR 文字识别。内容涵盖:从早期扫描翻译笔、汉王 e 典笔到有道、讯飞词典笔的发展脉络;笔头窄视窗连拍与多帧拼接的原理、配准融合算法及工程要点;OCR 从传统切字分类到 CRNN+CTC 深度学习范式的全链路;以及关键指标、与点读笔 OID 的路线对比和产业格局。

2026-08-30 10:43:15 5527

原创 PCB 设计中的「五五原则」简析

以硬件工程师视角,系统分析经典经验法则——时钟频率 ≥ 5 MHz 或上升沿 ≤ 5 ns 即须采用多层板设计。文档从四个维度展开:原理(边沿决定带宽 f_knee=0.5/tr、传输线判据 l_crit=tr·v/6≈12 cm、高频回流路径与两个"5"的自洽性);应用(判域决策流程与高速板、低速快沿板、开关电源、EMC 整改四类案例);工具(阻抗计算、SI/EMC 仿真、示波器与近场探头实测);实践(推荐叠层、端接策略、12 项检查清单与常见误区)。

2026-08-30 10:24:43 2966

原创 PCB 设计中的 3W原则 简析

以硬件工程师的视角,分析 PCB 设计中的 3W 原则——两条信号线边缘间距不小于 3 倍线宽,以抑制线间串扰。文档从四个维度展开:原理层面剖析容性/感性耦合机制,阐明约 70% 电磁场集中于走线下方 3W 区域、3W 正是串扰抑制与布线密度的工程拐点;细节层面澄清"边缘距而非中心距"等六大要点;应用层面给出低速/高速/时钟/RF 的分级间距策略;工具层面覆盖 Altium、Allegro、KiCad 规则设置与仿真验证;实践层面提供落地流程、DDR3 实战案例与审查清单。

2026-08-29 11:15:20 3637

原创 PCB 设计中的 20H原则 简析

以硬件工程师视角,分析PCB 设计中的 20H 原则:电源平面边缘应相对地平面内缩 20 倍介质厚度(20H),以约束平行板结构的边缘场辐射,可抑制约 70% 边缘辐射、改善 EMI。全文从四维度展开:原理(贴片天线模型与量化依据)、应用(场景判断与 4/6 层叠层落地)、工具(EDA 内缩操作与 SIwave 仿真验证)、实践(六步流程、检查清单、6 层板完整设计示例)。

2026-08-29 10:48:15 3995 3

原创 [行业话谈] OID —— 点读笔的底层技术

聊一聊 OID(光学辨识码/区域码)技术,即点读笔"点哪里、读哪里"的底层原理。内容涵盖:点读技术从LeapPad到中国点读机市场的发展历程;"虚拟网格+墨点偏移"的编码、隐形印刷、识别解码与区域映射全链路;OID1至OID3及新一代SoC读取头的迭代脉络;专利三层格局、关键技术指标与对比。

2026-08-27 23:17:36 6364

原创 Linux Framebuffer 设备驱动机制简析

面向嵌入式 Linux fbdev 的结构化简析:从整体架构到内核实现细节,从应用编程到驱动编写,覆盖设备树(Device Tree)时代到 Linux 6.x 的关键演进节点。

2026-08-27 20:07:48 6106

原创 Linux INPUT 子系统简析(应用与驱动双视角)

INPUT 子系统是 Linux 对键鼠、触摸屏、手柄等"人机输入设备"的统一抽象框架,采用"设备驱动层 — Input 核心层 — 事件处理层"三层架构。驱动侧只需分配并注册 `struct input_dev`、调用 `input_report_*()` 上报事件;应用侧统一通过 `/dev/input/eventX` 读取 `struct input_event` 并使用 ioctl 查询/控制设备。本文从应用与驱动双视角,先整体讲解架构与事件模型,再深入数据结构、核心 API、设备树结合等。

2026-08-20 08:09:09 6626

原创 常见嵌入式操作系统中的软件定时器机制

系统梳理常见嵌入式操作系统中的软件定时器机制。从时间管理数据结构、回调执行上下文、触发模式、时钟驱动方式四个维度,归纳有序/增量链表、时间轮、红黑树、跳表、守护任务投递、tickless 等通用实现机制,对定时计数绕回(tick wraparound)这一共性隐患做专门分析;逐一详解 Linux、FreeRTOS、μC/OS-II、μC/OS-III、RT-Thread、Zephyr、ThreadX、NuttX、LiteOS、AliOS Things(Rhino)共 10 种操作系统。

2026-08-11 07:47:36 7927

原创 sx_opus2wav 开源项目分析

sx_opus2wav 是一个基于 opuslib/libopus 的轻量级 Opus ↔ WAV 双向转换工具,提供 CLI 与 tkinter GUI 双形态。其核心差异化在于面向嵌入式设备导出的非标 Opus 数据(简单分帧流、纯裸流),而非仅支持标准 OGG 容器。项目围绕 ogg / framed / raw 三格式模型组织,具备 PLC 丢包隐藏、自实现 RFC 7845 OGG 封装、8 用例 md5 基线回归测试等亮点,协议理解扎实、工程质量在线。

2026-08-11 00:11:30 14478

原创 Linux MISC(杂项设备)驱动框架 简析

系统解析 Linux MISC(杂项设备)驱动框架。先从应用与驱动两个视角给出整体架构;后深入核心机制;逐字段剖析 `struct miscdevice`,并给主要 API 的原型、示例与注意事项;讲解 misc 与 **platform 设备驱动框架**及**设备树**的结合方式;覆盖从设备树时代(3.x)到 6.x LTS 的版本演进关键节点;提供“设备树 + platform 驱动 + misc 设备”的完整驱动与应用示例。

2026-08-05 08:01:38 9648

原创 常见嵌入式操作系统中的内存管理机制

本文系统化梳理嵌入式操作系统中的内存管理机制。先从整体上归纳四大类常见机制——静态内存分配、动态内存堆、固定块内存池、虚拟内存与保护,并分析碎片、实时确定性、对齐、统计诊断等跨切关注点。后逐一详解 Linux、FreeRTOS、μC/OS-II、μC/OS-III、RT-Thread、Zephyr、ThreadX、NuttX、LiteOS、AliOS Things 十个主流系统的内存管理接口与实现要点,最后给出跨系统接口对比表、硬件支撑分析与选型建议,供嵌入式开发者选型与设计参考。

2026-08-04 07:06:06 8132

原创 Linux Platform 设备驱动框架 简析

本文从应用层与驱动层双视角,系统梳理 Linux Platform 设备驱动框架的完整架构、核心机制、版本演进及关键 API。覆盖从 2.6 框架诞生到 6.x 内核的关键里程碑,包含设备树(Device Tree)集成、匹配机制、资源管理、生命周期管理等核心内容,并附完整代码示例与最佳实践。

2026-08-04 06:55:54 7416

原创 Linux 异步通知机制(fasync / SIGIO)简析

本文从应用层与驱动层双视角,系统讲解 Linux 异步通知机制(Signal-Driven I/O)的原理、API 用法与实现细节。内容覆盖从 Device Tree 引入(2.6.x/3.x)到 6.x 内核的关键演进节点,包含完整的应用示例、驱动示例、架构图示及版本差异对照,适用于嵌入式驱动开发与系统编程参考。

2026-08-03 07:54:37 8033

原创 Linux 阻塞与非阻塞 IO 机制简析

本文从应用层、驱动层、内核层三个维度,系统梳理 Linux 阻塞/非阻塞 IO 的设计哲学、实现机制与版本演进。覆盖从 Kernel 3.x(设备树时代)到 6.x(io_uring 时代)的关键版本节点,深入解析五种 IO 模型的本质差异、内核等待队列与调度器的协作关系,以及 io_uring 带来的统一异步革命。全文附完整 API 参考、可编译示例代码与生产注意事项。

2026-08-03 07:47:41 8307

原创 Linux 中的 gpio 子系统

系统讲解 Linux GPIO 子系统(gpiolib):先给出整体架构(提供者/消费者两条主线、与 pinctrl 的关系、内核态与用户态两类接口),再按 2.6.x → 6.x 梳理关键版本演进节点,随后深入解析核心数据结构、控制器驱动与消费者驱动 API、设备树绑定、GPIO 中断(chained/hierarchical irqchip)、用户空间字符设备接口与 libgpiod 工具链,最后给出调试手段、常见误区与最佳实践。全文以 6.x 内核现状为准,兼顾历史版本差异说明。

2026-08-02 11:50:11 9088

原创 Linux 中断上半部与下半部机制简析

本文先整体说明Linux 中断为什么要分两半,给出中断处理全景;再逐一分析上半部(request_irq、返回值与 IRQF 标志、genirq 框架、设备树时代的 irq_domain 中断映射)与下半部的四大机制(softirq、tasklet、工作队列、中断线程化);随后梳理从 2.4 到 6.12 的关键版本演进节点(genirq、threaded IRQ、cmwq、irq_domain、WQ_BH、PREEMPT_RT 主线化);最后给出机制对比表、选型决策树与调试观测手段。

2026-07-31 07:36:00 10023

一个真机跑通的 基于 ESP-IDF 5.2 + LVGL 8.4 + MVL 0.1.0 的 WiFi 扫描 Demo

一个真机跑通的 基于 ESP-IDF 5.2 + LVGL 8.4 + MVL 0.1.0 的 WiFi 扫描 Demo。

2026-09-02

ESP32S3 + IDF5.2.2 控制台终端使用 Demo

基于ESP32S3 和 IDF5.2.2 的控制台终端(Console)使用 Demo。

2025-02-27

ESP32S3 + IDF5.2.2 wifi扫描 Demo

ESP32S3 + IDF5.2.2 wifi扫描 Demo, 通过默认事件循环处理扫描完成事件,不阻塞调用。

2025-01-02

ESP32S3 + IDF5.2.2 + LVGL + ST7789 + xpt2046 驱动LCD 屏幕 Demo

ESP32S3 + IDF5.2.2 + LVGL + ST7789 + xpt2046 ,驱动LCD屏幕完整Demo示例。

2024-12-24

SCons 4.5.0版本

SCons v4.5.0版本,基于python的工程编译管理工具

2023-04-10

SCons 4.3.0版本

SCons v4.3.0版本,基于python的工程编译管理工具

2023-04-10

SCons 4.4.0版本

SCons v4.4.0版本,基于python的工程编译管理工具

2023-04-10

SCons 4.2.0版本

SCons v4.2.0版本,基于python的编译管理工具

2023-04-10

SCons v4.1.0 版本

SCons v4.1.0 版本,python实现的编译管理工具

2023-04-10

FreeRTOS_STM32F429IGT6_Demo.zip

在STM32F4 硬件平台移植FreeRTOS V10.3.1 的完整源码,编译、下载、运行正常,符合预期。

2020-06-25

图解设计模式(JAVA描述版)

图解设计模式(JAVA描述版)彩色高清PDF扫描版本,JAVA设计模式学习利器

2018-07-23

《设计模式》高清PDF中文完整版

设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式

2018-07-23

设计模式精解-GoF 23 种设计模式解析附 C++实现源码

设计模式精解-GoF 23 种设计模式解析附 C++实现源码高清PDF扫描版本

2018-07-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除