VIP20
本课程属于:022-RV1126驱动开发 嵌入式UI · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录 咨询 / 购买

字符设备驱动开发详解

📚 共计 30 章节
第1章
字符设备驱动概述
Linux设备驱动分类 · 字符设备与块设备区别 · 驱动框架介绍
基础概念
第2章
开发环境搭建
交叉编译工具链 · 内核源码树配置 · 最小系统与NFS挂载
环境工具链
第3章
第一个字符设备驱动
模块加载/卸载 · module_init/exit · LICENSE与作者信息
入门模块
第4章
设备号管理
主/次设备号 · 静态申请与动态分配 · 查看已注册设备号
设备号管理
第5章
file_operations结构体
核心成员解析 · open/release/read/write · llseek与unlocked_ioctl
核心接口
第6章
字符设备注册与注销
cdev_init/add/del · 设备节点创建(mknod/udev)
注册cdev
第7章
用户空间与内核数据交互
copy_from/to_user · get/put_user · 数据校验
数据交互
第8章
并发与竞态控制(上)
原子操作 · 自旋锁原理与场景 · 自旋锁变种
并发自旋锁
第9章
并发与竞态控制(下)
信号量 · 互斥体 · 读写锁 · RCU机制简介
并发互斥
第10章
等待队列
阻塞与非阻塞I/O · 等待队列头/项 · wake_up机制
阻塞等待
第11章
poll/select/epoll机制
驱动层poll函数 · 内核通知用户空间事件
多路复用事件
第12章
异步通知
fasync_struct · kill_fasync · 应用层signal处理
异步信号
第13章
proc文件系统
创建proc条目 · 读写proc文件 · seq_file接口
proc调试
第14章
ioctl命令
命令编码(_IO/_IOR/_IOW/_IOWR) · switch-case · 冲突避免
ioctl命令
第15章
内存管理基础
kmalloc/vmalloc/kfree · GFP标志 · 分配失败处理
内存分配
第16章
DMA与缓冲区管理
一致性/流式映射 · DMA池 · scatter/gather I/O
DMA高性能
第17章
硬件访问
ioremap/ioport_map · inb/outb · readb/writeb · MMIO/PIO
硬件寄存器
第18章
中断处理(上)
注册中断(request_irq) · 中断上下文 · 中断标志
中断注册
第19章
中断处理(下)
顶/底半部 · tasklet/workqueue/threaded_irq · 中断共享
底半部workqueue
第20章
定时器与内核时间管理
jiffies与HZ · timer_list · delayed_work · 高精度定时器
定时器时间
第21章
内核线程
kthread_create/run · 线程停止 · kthread_should_stop
内核线程并发
第22章
设备模型基础
kobject/ktype/kset · sysfs · 属性文件创建
设备模型sysfs
第23章
platform驱动框架
platform_device/driver · 匹配机制 · probe流程
platform驱动
第24章
设备树基础
DTS语法 · compatible · reg/interrupts · 与platform结合
设备树DTS
第25章
GPIO子系统
gpio_request/direction_output · gpiolib/pinctrl · 设备树GPIO
GPIOpinctrl
第26章
RTC驱动实战
RTC类驱动框架 · rtc_device_register · 时间读写与alarm
RTC实战
第27章
Input子系统
input_dev注册 · 事件上报(input_event) · evdev接口
Input事件
第28章
Misc驱动框架
miscdevice结构体 · 自动创建设备节点 · 适合场景分析
Misc简易
第29章
调试与性能优化
printk · dynamic_debug · ftrace/perf · 内存泄漏检测
调试性能
第30章
驱动热插拔与电源管理
uevent · devicetree overlay · suspend/resume · runtime PM
热插拔电源