首页
›
Linux内核与驱动
›
012-嵌入式Linux驱动开发从入门到精通
›
《Linux GPIO按键驱动开发与输入子系统集成》
VIP10
本课程属于:012-嵌入式Linux驱动开发从入门到精通
Linux内核与驱动 · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
Linux GPIO按键驱动开发与输入子系统集成
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
Linux驱动开发概述
Linux内核模块基础 · 驱动分类(字符/块/网络) · 驱动开发环境搭建(交叉编译链
Linux
驱动开发概述
02
字符设备驱动基础
file_operations结构体 · 主次设备号 · 设备节点创建(手动与自动)
字符设备驱动基础
file
03
GPIO子系统介绍
Linux GPIO子系统架构 · gpiolib库 · GPIO编号与控制器
GPIO
子系统介绍
04
GPIO操作API
gpio_request/gpio_… · gpio_direction_inp… · gpio_get_value/gpi…
GPIO
API
05
设备树基础
设备树语法(节点 · 属性 · reg
设备树基础
设备树语法
06
GPIO按键驱动(轮询模式)
使用gpio_get_value实现… · 定时器去抖 · 用户空间读取
GPIO
按键驱动
07
Linux中断子系统
中断概念(IRQ · 中断号 · 中断上下文)
Linux
断子系统
08
GPIO中断注册
gpio_to_irq()函数 · 中断触发类型(上升沿/下降沿/双边沿… · 中断标志位设置
GPIO
断注册
09
按键中断驱动实战(上半部)
在中断处理函数中记录按键事件 · 使用jiffies进行简单去抖 · 打印按键信息
按键
断驱动实战
10
中断下半部机制(tasklet)
tasklet原理 · tasklet_init/taskl… · 将按键处理放入tasklet
tasklet
断下半部机制
11
中断下半部机制(工作队列)
workqueue原理 · INIT_WORK/schedule… · 与tasklet对比
断下半部机制
工作队列
12
中断下半部机制( threaded IRQ)
request_threaded_i… · 主处理函数与线程处理函数分工 · 适用场景
threaded
IRQ
13
等待队列与阻塞IO
wait_event_interru… · wake_up_interrupti… · 实现按键读取的阻塞等待
IO
等待队列
14
poll/select支持
驱动中实现poll函数 · __poll_t类型 · poll_wait
poll/select
支持
15
异步通知(信号)
fasync_struct · kill_fasync · 用户空间fcntl设置
异步通知
信号
16
按键去抖算法(软件实现)
状态机去抖 · 延时采样 · 定时器去抖
按键去抖算法
软件实现
17
多按键支持
为每个GPIO分配独立中断 · 共享中断处理 · 按键矩阵扫描简介
多按键支持
GPIO
18
设备树中断控制器
interrupt-controll… · interrupt-parent · interrupt-cells
设备树
断控制器
19
GPIO按键驱动(设备树匹配)
of_match_table · platform_driver · 从设备树获取GPIO和中断信息
GPIO
按键驱动
20
platform驱动模型
platform_device/pl… · probe/remove函数 · 资源获取(platform_get_…
platform
驱动模型
21
sysfs与debugfs接口
在/sys/class下创建设备类 · 在/sys/kernel/debug…
sysfs
debugfs
22
内核定时器与高精度定时器
timer_list · mod_timer · hrtimer
内核定时器
高精度定时器
23
输入子系统(input subsystem)
input_dev结构体 · input_register_dev… · input_report_key
input
subsystem
24
将按键驱动接入输入子系统
分配input_dev · 设置EV_KEY位图 · 在中断中上报事件
将按键驱动接入输…
input
25
电源管理
suspend/resume回调 · no_irq_chip · 保持GPIO中断唤醒
电源管理
suspend/resu…
26
调试技巧
printk等级控制 · 动态调试(dynamic_debug… · ftrace跟踪中断
调试技巧
printk
27
锁与并发
自旋锁(spinlock) · 互斥锁(mutex) · 原子操作
并发
spinlock
28
内存屏障与DMA一致性
rmb/wmb/mb · dma_alloc_coherent · dma_map_single
DMA
内存屏障
29
性能优化
中断合并(interrupt coa… · 减少中断频率 · 使用percpu变量
性能优化
interrupt
30
综合项目实战
设计一个4x4矩阵键盘驱动 · 使用GPIO中断+输入子系统+去抖+… · 完整代码与测试
综合项目实战
x4
所属VIP或分类
同VIP:Linux-GPIO设备驱动开发与设备树适配
同VIP:Linux-SPI驱动开发与DMA传输调优
同VIP:Linux网络驱动开发从入门到DMA数据收发