技术栈
linux驱动
阿拉斯攀登
10 天前
linux
·
嵌入式硬件
·
嵌入式
·
linux驱动
·
字符设备驱动
平台设备驱动:platform bus 与设备树
嵌入式 SoC 上的片上外设(I2C、SPI、UART、GPIO 控制器等)挂在 platform 总线上。这篇讲 platform 驱动框架、设备树 DTS 语法、驱动和设备怎么匹配,以及现代 Linux 驱动的标准写法。
阿拉斯攀登
10 天前
linux
·
网络
·
嵌入式硬件
·
linux驱动
·
字符设备驱动
并发与同步:自旋锁、信号量、互斥锁
Linux 是多任务多 CPU 的系统,驱动里的资源可能被同时访问,导致竞态。这篇讲驱动开发中常用的同步机制:原子操作、自旋锁、信号量、互斥锁,各自的适用场景和注意事项。
阿拉斯攀登
10 天前
linux
·
嵌入式硬件
·
linux内核
·
嵌入式
·
linux驱动
定时器与延时:内核定时器、hrtimer 与延时函数
驱动里经常需要定时执行任务、等待硬件就绪。这篇讲 Linux 内核的定时机制:低精度定时器 timer_list、高精度定时器 hrtimer、以及各种延时函数的区别和用法。
阿拉斯攀登
10 天前
linux
·
驱动开发
·
嵌入式硬件
·
linux内核
·
嵌入式
·
linux驱动
·
spi
SPI 设备驱动开发
SPI 是另一种常用的串行外设总线,速度比 I2C 快,适合高速传输。这篇讲 Linux SPI 子系统架构、spi_driver 框架、四种 SPI 模式、读写传输 API,以及完整的 SPI 设备驱动示例。
阿拉斯攀登
10 天前
linux
·
驱动开发
·
嵌入式硬件
·
嵌入式
·
linux驱动
·
i2c
·
字符设备驱动
I2C 设备驱动开发
I2C 是嵌入式最常用的低速串行总线,传感器、EEPROM、RTC 很多都是 I2C 接口。这篇讲 Linux I2C 子系统架构、i2c_driver 框架、设备树匹配、I2C 读写 API,以及完整的传感器驱动示例。
阿拉斯攀登
11 天前
linux
·
网络
·
嵌入式硬件
·
linux驱动
内核模块开发:module_init 与模块机制详解
内核模块是 Linux 驱动的载体。这篇深入讲模块的加载卸载机制、模块参数、符号导出、模块依赖、多文件编译,以及常见的模块开发技巧。
阿拉斯攀登
11 天前
linux
·
嵌入式
·
linux驱动
·
字符设备驱动
字符设备驱动:file_operations 与读写实现
字符设备是 Linux 驱动最基础、最常用的一类。这篇讲字符设备驱动的核心框架:设备号、cdev 结构体、file_operations 操作集、open/read/write 实现,以及用户空间和内核空间的数据拷贝。
阿拉斯攀登
11 天前
linux
·
嵌入式硬件
·
linux内核
·
嵌入式
·
linux驱动
嵌入式 Linux 驱动概述:分类、内核模块、开发环境
嵌入式 Linux 驱动是连接硬件和应用的桥梁。这篇从零讲起:驱动是什么、分哪几类、内核模块机制、开发环境怎么搭,带你入门 Linux 驱动开发。
道川贤林
1 个月前
linux
·
linux驱动
·
orangepi
·
u-boot
OrangePi 系统启动优先级修改
OrangePi 开发板支持从多种外部设备启动,包括SD卡、EMMC、NVMe固态硬盘等,本文则讲述如何在 Orangepi 开发板上修改从外部设备启动的优先级。
AF_INET6
1 个月前
c语言
·
经验分享
·
音视频
·
linux驱动
·
sensor
·
imx415
·
datasheet
sensor笔记(一)imx415
✔️本篇主要是笔者为调试imx415不同的帧率而记录的相关笔记,内容相对之前文章简要,全文均为手动整理,也不可避免有所错漏,只希望能给到需要的读者一些参考。
DA0221
4 个月前
linux驱动
Linux驱动-Regmap子系统
Linux下大部分设备的驱动开发都是操作其内部寄存器,比如I2C/SPI设备的本质都是一样的,通过I2C/SPI接口读写芯片内部寄存器。芯片内部寄存器也是同样的道理,比如STM32MP157的PWM、TIM等外设初始化,最终都是要落到寄存器的设置上。Linux下使用i2c_transfer来读写I2C设备中的寄存器,SPI接口的话使用spi_write/spi_read等。I2C/SPI芯片又非常的多,因此Linux内核里面就会充斥了大量的i2c_transfer这类的冗余代码,再者,代码的复用性也会降低
DA0221
4 个月前
linux
·
c语言
·
linux驱动
Linux驱动-I2C总线驱动
I2C是一种很常见的同步、串行、低速、近距离通信接口。Linux内核开发者为了让驱动开发工程师在内核中方便的添加自己的I2C设备驱动程序,更容易的在linux下驱动自己的I2C接口硬件,进而引入了I2C总线框架。与Linux下的platform虚拟总线不同的是,I2C是实际的物理总线,所以I2C总线框架也是Linux下总线、设备、驱动模型的产物。
DA0221
4 个月前
linux
·
c语言
·
linux驱动
Linux设备树,DTS、DTB浅析
设备树(Device Tree),描述设备设备树的文件叫做DTS(Device Tree Source),DTS文件采用了树形结构来描述板机设备,也就是开发板信息,比如CPU数量、内存基地址、IIC接口上接了那些设备、SPI 接口上接了那些设备等。
泽平590
4 个月前
linux
·
运维
·
服务器
·
驱动开发
·
单片机
·
linux驱动
Linux Pinctrl子系统
我节选了其中的一部分,这里可以看到,他将一些引脚如,PH0,PH1,进行了分组配置,将他们分配到了uart sleep状态时候的一个引脚的配置,提前将他们分配到了gpio_input模式,这个其实就是所谓的生产端
ttkwzyttk
5 个月前
linux驱动
Linux内核中模块定义宏机制解析
在编写 Linux 设备驱动时,尤其是 platform、I2C、SPI 等总线驱动,我们经常会看到类似下面的写法:
BlueBirdssh
6 个月前
linux驱动
时钟相位差
好的,我来为您直观地绘制时钟信号之间的相位差示意图:## **时钟相位差示意图**### **1. 0° 相位差(同相)** ``` 时钟A: ___|‾‾‾|___|‾‾‾|___|‾‾‾|___|‾‾‾|___|‾‾‾|___ 时钟B: ___|‾‾‾|___|‾‾‾|___|‾‾‾|___|‾‾‾|___|‾‾‾|___ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ 边沿: 完全对齐,同时变化 关系: 两个时钟完全同步 ```
蓝天居士
6 个月前
linux驱动
·
gpio-keys
Linux设备驱动之gpio-keys(2)
接前一篇文章:Linux设备驱动之gpio-keys(1)本文内容参考:Linux设备驱动之gpio-keys_linux gpio-keys-CSDN博客
ton_tom
8 个月前
linux驱动
设备驱动程序编程-Linux2.6.10-kdb安装
下载解压patch
淮北也生橘12
8 个月前
linux驱动
·
嵌入式linux
Linux驱动知识点:容器嵌入机制(Container Embedding)
核心结论:容器嵌入机制是 Linux 内核 / 驱动中通过 “结构体成员指针反推完整结构体实例指针” 的核心设计,基于 C 语言结构体固定内存布局特性,通过container_of宏实现,解决 “回调函数仅获框架对象指针,需访问完整私有数据” 的核心问题,是驱动开发中上下文关联的必备手段。
yan12368
1 年前
android
·
linux
·
驱动开发
·
linux驱动
Linux 驱动之设备树
【北京迅为】嵌入式学习之Linux驱动(第七期_设备树_全新升级)_基于RK3568_哔哩哔哩_bilibili