I2C子系统:从协议时序到设备驱动开发的完整实战
I2C子系统:从协议时序到设备驱动开发的完整实战 I2C是嵌入式里用得最多的总线之一,传感器、EEPROM、PMIC全挂在上面,但写I2C驱动不只是调几个API的事——协议时序没搞清楚,上拉电阻选不对,总线电容算错,出来的就是一堆NACK和超时。本文基于Linux...
嵌入式 · Linux · ROS · AI 实战笔记
分类:嵌入式
I2C子系统:从协议时序到设备驱动开发的完整实战 I2C是嵌入式里用得最多的总线之一,传感器、EEPROM、PMIC全挂在上面,但写I2C驱动不只是调几个API的事——协议时序没搞清楚,上拉电阻选不对,总线电容算错,出来的就是一堆NACK和超时。本文基于Linux...
GPIO驱动开发:从gpiod接口到设备树配置的实战指南...
Platform驱动框架:设备与驱动解耦的核心机制...
内核内存管理与DMA:从ZONE划分到跨设备共享的实战指南 写驱动绕不开两件事:内存怎么分,DMA怎么搬,内核把物理内存切成ZONE,每个ZONE有自己的分配策略和限制;DMA让设备直取内存,但cache一致性、地址映射、缓冲区生命周期全是坑。本文基于Linux...
Linux内核定时器与延迟工作:四种机制选型与实。...
Linux驱动开发:中断处理与并发控制,从上半部到锁机制一次讲透 中断是外设与CPU沟通的桥梁,并发控制是多核场景下数据安全的底线。这两块搞不清楚,写出来的驱动迟早翻车。 一、中断是什么?...
嵌入式Linux设备树开发实战:从DTS编写到驱动匹配全链路 设备树把硬件描述从内核代码中剥离出来,驱动不再关心寄存器地址写死在哪,只管从DTB里读配置。本文覆盖DTS语法、编译流程、驱动匹配机制、内核API调用、调试技巧,给出兼容Linux 6.8的完整代码示例。 一、为什么需要设备树...
字符设备驱动:从cdev注册到miscdevice的完整实战 字符设备是Linux驱动开发的第一道门。本文基于Linux 6.8内核,拆解cdev注册、fileoperations回调、ioctl设计、杂项设备、设备节点管理的完整链路,给出可直接编译运行的代码。 一、字符设备是什么?...
Linux内核模块开发:从Hello World到模块间通信 内核模块是Linux驱动开发的基石。理解模块的加载卸载机制、参数传递、符号导出和依赖管理,是写好驱动的第一步。本文基于Linux 6.8内核(Ubuntu 24.04...