首页
›
Linux内核与驱动
›
187-嵌入式Linux驱动开发
›
《嵌入式Linux驱动开发字符设备驱动从注册到卸载全流程》
VIP10
本课程属于:187-嵌入式Linux驱动开发
Linux内核与驱动 · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
嵌入式Linux驱动开发字符设备驱动从注册到卸载全流程
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
字符设备驱动概述
字符设备概念 · 与块设备/网络设备的区别 · 驱动在内核中的角色
字符设备驱动概述
字符设备概念
02
开发环境搭建
交叉编译工具链安装 · Linux内核源码获取与解压 · 内核配置与编译
开发环境搭建
交叉编译工具链安…
03
内核模块基础
模块概念 · 模块与驱动的区别 · 模块生命周期
内核模块基础
模块概念
04
第一个内核模块
模块头文件 · module_init/module… · LICENSE/GPL声明
第一个内核模块
模块头文件
05
字符设备注册核心数据结构
struct cdev结构体详解 · dev_t主次设备号 · 设备号分配函数(alloc_chrd…
字符设备注册核心…
struct
06
cdev_init与cdev_add
cdev_init初始化 · cdev_add注册到内核 · cdev_set_owner设置模块…
cdev
init
07
file_operations结构体
struct file_operat… · open/release/read/…
file
operations
08
设备节点创建
手动mknod创建设备节点 · udev/mdev自动创建设备节点机… · class_create/devic…
设备节点创建
mknod
09
open与release实现
open函数中的自增计数 · 私有数据指针设置 · release中的资源释放
open
release
10
read与write实现
用户空间与内核空间数据拷贝(copy… · 缓冲区管理 · 阻塞与非阻塞I/O
read
write
11
llseek实现
文件定位操作 · f_pos指针修改 · SEEK_SET/SEEK_CUR/…
llseek
实现
12
unlocked_ioctl实现
ioctl命令编码规则(_IO/_I… · switch-case处理 · 命令号定义头文件
unlocked
ioctl
13
阻塞I/O与等待队列
等待队列头初始化 · wait_event_interru… · wake_up_interrupti…
I/O
阻塞
14
非阻塞I/O与poll机制
poll_wait函数 · 返回掩码(POLLIN/POLLOU… · select/poll/epoll用…
I/O
poll
15
并发与竞态控制(上)
原子操作(atomic_t) · 自旋锁(spinlock_t)使用场… · 自旋锁与中断上下文
并发
竞态控制
16
并发与竞态控制(下)
互斥体(struct mutex) · 读写锁(rwlock_t) · RCU机制简介
并发
竞态控制
17
驱动中的内存管理
kmalloc/kfree · vmalloc/vfree · GFP标志(GFP_KERNEL/G…
驱动
内存管理
18
驱动中的定时器
struct timer_list · timer_setup · mod_timer
驱动
定时器
19
驱动中的工作队列
work_struct与workqu… · schedule_work · flush_work
驱动
工作队列
20
驱动中的中断处理
request_irq/free_i… · 中断处理函数原型 · 上半部与下半部(tasklet/wo…
驱动
断处理
21
驱动中的调试技术
printk日志级别 · dmesg命令 · 动态调试(dynamic_debug…
驱动
调试技术
22
驱动中的ioctl高级用法
可变长度数据传输 · 命令号编码规范 · 用户态与内核态数据校验
ioctl
驱动
23
驱动中的异步通知
fasync_struct · kill_fasync · F_SETOWN/F_SETFL/S…
驱动
异步通知
24
驱动中的mmap实现
mmap系统调用流程 · remap_pfn_range · 缓存一致性(DMA/非DMA)
mmap
驱动
25
驱动中的设备树支持
设备树概念 · compatible属性匹配 · of_match_table
驱动
设备树支持
26
驱动中的电源管理
suspend/resume回调 · 系统睡眠状态 · 运行时PM(runtime PM)
驱动
电源管理
27
驱动中的错误处理与容错
错误码定义(-ENOMEM/-EIN… · 错误路径清理 · goto统一退出模式
驱动
错误处理
28
驱动卸载流程
cdev_del · device_destroy · class_destroy
驱动卸载流程
cdev
29
完整驱动示例(上)
综合驱动代码框架 · 头文件包含 · 模块参数
完整驱动示例
综合驱动代码框架
30
完整驱动示例(下)
file_operations实现 · 阻塞读写 · ioctl命令
完整驱动示例
file
所属VIP或分类
同VIP:SPI总线驱动注册枚举与数据传输性能调优方法
同VIP:嵌入式Linux内核模块与字符设备驱动开发
同VIP:嵌入式Linux驱动开发并发控制:RCU机制与使用场景