linux驱动开发

Zeku4 天前
stm32·freertos·linux驱动开发·linux应用开发
20260125 - Linu驱动学习笔记:SPI-OLED测试OLED的D/C引脚电平逻辑:设备树定义:D/C引脚接在了GPIO4_20,即116号引脚,在APP程序中控制即可,不需要写进驱动。
Zeku4 天前
stm32·freertos·linux驱动开发·linux应用开发
用户通用驱动spidev.c与设备匹配问题发现了一个奇怪的现象:设备树定义:spi_driver定义:转入of_match_table的设备列表:
Zeku6 天前
stm32·freertos·linux驱动开发·linux应用开发
Linux驱动学习笔记:SPI子系统中的内核线程初始化kthread_queue_work 明明只是把一个“任务”扔进队列,为什么它最终执行的代码偏偏会是 __spi_pump_messages 这个函数?它是怎么绑定上去的?
Zeku6 天前
stm32·freertos·linux驱动开发·linux应用开发
Linux驱动学习笔记:spi-imx.c收发消息的核心流程关键理解:设计模式:函数指针表,实现多型号支持
Zeku6 天前
stm32·freertos·linux驱动开发·linux应用开发
内核日志分析:__spi_pump_messages的Caller_Optimization和KWorker_Thread[ 900.082769] [SPICORE_TRACE] __spi_sync: = => Enter. [ 900.088086] [SPICORE_TRACE] __spi_sync: the master of this device is: spi0 (Bus Number: 0). [ 900.096874] [SPICORE_TRACE] __spi_sync: master->transfer == spi_queued_transfer, Queueing message (modern
Zeku7 天前
stm32·freertos·linux驱动开发·linux应用开发
借助通用驱动spidev实现SPI全双工通信关键理解:这个ioctl调用的是spidev_message()函数:TLC5615是10位串行DAC,时序如下:
Zeku9 天前
stm32·freertos·linux驱动开发·linux应用开发
20260120 - Linux驱动学习笔记:SPI子系统核心层到具体硬件驱动详细追踪从spi.c中的函数接口 spi_write() 到 spi-imx.c 中具体硬件操作的完整调用链。
Zeku11 天前
stm32·freertos·linux驱动开发·linux应用开发
Linux内核中SPI 子系统的整体架构关键点:
Zeku14 天前
stm32·freertos·linux驱动开发·linux应用开发
Linux驱动学习笔记:SPI OLED 驱动源码深度分析这份笔记是关于 Linux SPI OLED 驱动(基于 Framebuffer 架构)的深度代码分析与学习笔记。旨在梳理驱动的分层架构、核心难点(数据格式转换)、以及关键机制(内核线程与 DMA 内存管理)的设计原理。
Zeku17 天前
stm32·freertos·linux驱动开发·linux应用开发
Linux应用与驱动开发:mmap和内存映射mmap (Memory Map) 是一种内存映射文件的方法。在嵌入式 Linux 驱动开发中,它主要用于将外设的物理地址(如 GPIO 寄存器)映射到用户进程的虚拟地址空间。
Zeku18 天前
stm32·freertos·linux驱动开发·linux应用开发
20260112 - Linux驱动学习笔记:Linux 中断下半部Linux 为了平衡硬件响应速度和系统处理能力,将中断分为两个阶段:随着 Linux 内核向多核(SMP)和实时化演进,下半部的选型发生了重要变化。
Zeku19 天前
stm32·freertos·linux驱动开发·linux应用开发
20260110 - Linux 驱动开发学习笔记:上下文、中断与休眠要理解为什么不能在中断处理函数中里调用休眠函数让出CPU,首先必须搞清楚代码是在什么环境(上下文)下运行的。
Zeku20 天前
stm32·freertos·linux驱动开发·linux应用开发
20260110 - Linux驱动学习笔记:环形缓冲区与按键防丢失假设你的驱动程序只用一个全局变量 int key_val 来保存按键值。环形缓冲区(也叫 FIFO,先入先出队列)是一块内存区域,配合两个指针:写指针 ® 和 读指针 (W)。
Zeku20 天前
笔记·stm32·freertos·linux驱动开发·linux应用开发
20260111 - Linux驱动学习笔记:异步通知在之前的学习中,以及接触了两种读取数据的方式:异步通知则是第三种方式:“信号驱动 IO”。参考你的应用层代码 button_test.c,APP 需要完成“三部曲”才能接收驱动的信号。
Zeku1 个月前
stm32·freertos·linux驱动开发·linux应用开发
20260103 - Linux平台总线LED驱动架构深度解析基于韦东山Linux驱动基础视频:LED模板驱动程序的改造这套代码展示了一个标准的 Linux 平台总线 (Platform Bus) 设备驱动模型。其核心设计思想是 分层 (Layering) 与 分离 (Separation)。
Zeku1 个月前
stm32·freertos·linux驱动开发·linux应用开发
20260102 - Linux驱动设计的思想假设你有 10 款开发板,用的都是同一款 CPU(比如 i.MX6ULL),但 LED 接的引脚不同:
Zeku1 个月前
stm32·freertos·linux驱动开发·linux应用开发
20260103 - Linux总线设备驱动模型学习笔记在传统的字符设备驱动编写中,开发者通常将“硬件资源(引脚、地址)”和“软件逻辑(操作流程)”混写在一起。这种方式存在两个主要缺陷:
Zeku1 个月前
stm32·freertos·linux驱动开发·linux应用开发
20251231 - Linux 字符设备驱动开发笔记:分层设计这份笔记的核心逻辑在于 “分层设计”:将驱动框架(和内核打交道)与硬件操作(和寄存器打交道)彻底剥离。
Zeku1 个月前
stm32·freertos·linux驱动开发·linux应用开发
20251230 - 为什么Linux驱动开发中必须要用到ioremap来访问硬件?为什么Linux驱动开发中必须要用到ioremap来访问硬件?在驱动程序里面为什么不能直接用物理地址来访问寄存器?
Zeku1 个月前
stm32·freertos·linux驱动开发·linux应用开发
20251228 - Linux 驱动开发硬件管理机制笔记学习Linux 驱动开发时,总觉得知识点十分零散,非常有必要把一些知识点集成起来总结。Linux 驱动开发硬件管理机制相关的术语分为“空间管理”、“描述机制”和“交互协议”三个维度,以此构建完整的知识地图。