嵌入式
文章平均质量分 73
和大家一起聊聊Linux驱动、应用开发、嵌入式软件、AI与机器人相关干货,希望能给大家带来一点点帮助与启发
LinuxRos
嵌入式、Linux、ROS机器人、AI,还有GitHub热门项目、行业资讯。把平时用到、看到的整理一下,希望能给你带来一点参考。有说得不对的地方,欢迎指正交流~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LVGL嵌入式GUI入门:从基础Demo到MVP架构实战
本文介绍了LVGL嵌入式图形库的基础使用和优化方案。主要内容包括:1)LVGL核心概念和基础Demo实现;2)原生开发的痛点分析,如代码耦合度高、维护困难等;3)提出MVP分层架构解决方案,详细说明视图层、模型层和调度层的分工;4)介绍帧动画实现方法,包括图片资源工程化处理和自动转换脚本。通过LVGL+MVP架构+资源自动化处理的组合方案,可有效解决嵌入式GUI开发中的代码混乱问题,提升项目的可维护性和开发效率。原创 2026-04-13 08:02:01 · 780 阅读 · 0 评论 -
驱动安全加固与漏洞防护:打造安全可靠的内核驱动
输入验证 → 边界检查 → 权限控制 → 安全API → 漏洞防护驱动安全是系统安全的第一道防线,内核驱动漏洞可能导致整个系统被攻陷。驱动安全 = 深度防御 + 持续审计输入验证:access_ok、边界检查、溢出检查权限控制:capable、文件权限、SELinux安全API竞态防护DMA安全:IOMMU、DMA池、地址验证漏洞防护:stack protector、static keys、硬化配置安全驱动是系统安全的基石!原创 2026-04-12 09:10:38 · 372 阅读 · 0 评论 -
内核模块高级特性:从入门到精通
模块参数 → 符号导出 → 版本控制 → 模块依赖 → 运行时管理内核模块的高级特性让驱动开发更加灵活、强大和可维护。内核模块高级特性 = 灵活 + 强大 + 可维护模块参数:支持int、bool、charp、array、自定义类型符号导出版本控制:MODULE_VERSION、LINUX_VERSION_CODE条件编译模块依赖运行时管理:try_module_get()、module_put()、引用计数高级特性:MODULE_ALIAS、初始化优先级、错误处理。原创 2026-04-12 09:10:09 · 252 阅读 · 0 评论 -
驱动性能优化技巧:让你的驱动飞起来
减少锁竞争 → 优化数据传输 → 降低系统调用 → 合理使用缓存驱动性能优化是嵌入式和服务器开发的必修课,目标是降低延迟、提高吞吐量。驱动性能优化 = 找准瓶颈 + 针对性优化锁优化:细粒度锁、RCU、per-cpu、读写锁数据传输:DMA、零拷贝、批量传输中断处理:threaded irq、NAPI、workqueue/tasklet选择内存管理系统调用:减少调用次数、mmap、sysfs性能分析:ftrace、perf、/proc文件系统没有最快,只有更快!持续优化,持续进步!原创 2026-04-11 08:14:10 · 464 阅读 · 0 评论 -
V4L2摄像头驱动开发:从零开始视频采集
视频设备 → V4L2框架 → 缓冲区管理 → DMA传输 → 用户空间V4L2(Video for Linux 2)是Linux视频设备的标准框架,专为摄像头、电视卡、视频采集卡等设备设计。V4L2驱动 = 视频设备的标准框架核心结构缓冲区管理:videobuf2管理DMA缓冲区两种模式关键ioctl掌握V4L2,就能开发各类视频设备!原创 2026-04-11 08:13:39 · 275 阅读 · 0 评论 -
内核调试技术全攻略:从printk到KGDB
printk(日志) → 动态调试 → ftrace(跟踪) → kprobes(探针) → KGDB(调试器)内核调试是驱动开发中定位问题、分析性能的核心技能。内核调试 = 定位问题的关键能力printk:最简单、最常用的调试手段动态调试:生产环境可控的调试输出ftrace:函数调用跟踪、性能分析kprobes:动态插入探针、深度调试KGDB:源码级调试、复杂问题定位掌握多种调试技术,才能高效解决内核问题!原创 2026-04-10 08:29:57 · 435 阅读 · 0 评论 -
杂项设备与虚拟设备:简化驱动开发的神器
misc设备(简化字符设备) + 虚拟设备(无硬件依赖) = 快速原型开发杂项设备简化了字符设备的注册流程,虚拟设备则无需真实硬件支持。│ 杂项设备特点 ││ 1. 主设备号固定为10,自动分配次设备号 ││ 2. 简化注册流程,无需手动创建cdev ││ 3. 自动创建设备节点 ││ 4. 适合简单字符设备 │杂项设备 = 简化字符设备开发的利器核心优势:自动分配设备号、自动创建节点适用场景:简单字符设备、虚拟设备虚拟设备:无需真实硬件,适合测试和原型开发掌握杂项设备,快速实现驱动原型。原创 2026-04-10 08:29:21 · 54 阅读 · 0 评论 -
输入子系统开发实战:键盘鼠标触摸屏
input_dev(设备) → Input核心层 → input_handler(事件处理) → 用户空间(/dev/input/eventX)输入子系统统一管理键盘、鼠标、触摸屏、游戏手柄等输入设备。输入子系统 = 统一的输入设备管理框架核心结构事件类型:EV_KEY(按键)、EV_REL(相对)、EV_ABS(绝对)上报流程用户接口掌握输入子系统,就能开发各类输入设备驱动!原创 2026-04-09 08:18:19 · 54 阅读 · 0 评论 -
内核定时器与延迟工作:时间管理的艺术
timer_list(低精度) / hrtimer(高精度) / delayed_work(延迟工作)内核定时器是驱动开发中实现周期性任务、超时处理、延迟执行的核心机制。// 过期时间(jiffies)// 回调函数u32 flags;u8 is_rel;u8 is_soft;u8 is_hard;HRTIMER_MODE_ABS = 0x00, // 绝对时间HRTIMER_MODE_REL = 0x01, // 相对时间。原创 2026-04-09 08:17:39 · 544 阅读 · 0 评论 -
I2C子系统与驱动开发:从协议到实战
i2c_adapter(控制器) ← I2C核心层 → i2c_client(设备) ← i2c_driver(驱动)I2C子系统采用分层架构,将控制器驱动与设备驱动分离,实现高度复用。I2C子系统 = 分层架构的典范核心概念:adapter(控制器)、client(设备)、driver(驱动)传输方式:i2c_transfer(原始)、SMBus(简化)设备树:通过reg属性指定I2C地址调试工具掌握I2C子系统,就掌握了总线类驱动的开发模式!原创 2026-04-08 22:24:14 · 73 阅读 · 0 评论 -
中断处理与并发控制:Linux驱动开发的核心难题破解
硬件中断 → 中断控制器 → CPU响应 → 中断处理程序 → 唤醒进程/处理数据中断机制解决了CPU与外设速度不匹配的问题,让外设能主动"通知"CPU处理任务,而不是CPU一直轮询等待原创 2026-04-08 07:34:43 · 735 阅读 · 0 评论 -
Linux Platform驱动框架:设备与驱动分离的优雅设计
Linux Platform框架实现了设备与驱动的解耦,通过platform_device描述硬件资源,platform_driver实现设备操作,由Platform总线负责匹配绑定原创 2026-04-07 04:42:33 · 196 阅读 · 0 评论 -
Linux GPIO驱动开发实战:从传统接口到新式gpiod
Linux GPIO子系统采用分层架构设计,从用户空间接口到硬件控制器形成完整链路gpiod接口已成为现代Linux驱动开发的标准实践,特别是在结合设备树使用时能充分发挥其设计优势原创 2026-04-07 04:41:39 · 442 阅读 · 0 评论 -
Linux设备树开发实战:从硬件描述到驱动匹配的完整链路
DTS源文件→编译为DTB→内核解析→驱动匹配→硬件初始化原创 2026-04-06 12:14:08 · 534 阅读 · 0 评论 -
终极零拷贝方案:V4L2 + GPU + DRM + DMA-BUF
摄像头 → 共享内存 → GPU/显示器全程 无CPU拷贝、无内存复制,所有硬件共用同一块物理内存,CPU 占用≈0,延迟<10ms。原创 2026-04-07 08:00:00 · 825 阅读 · 0 评论
分享