LED设备驱动
- LED基本硬件原理(以QT210为例)
通过配置GPIO,把相应的GPIO设置成高电平或低电平,达到点灯。
-
LED设备驱动的代码
leds_create_device 初始化设备-
核心数据结构初始化
设备号
major>0 :指定了设备号;major==0:没有指定
-
数据结构注册:添加到内核字符设备链表中,就是说内核可以看到
class_create:初始化内核class结构 -
加入到系统,创建设备文件
leds_init_gpm 初始化GPIO
与初始化正好相反 -
-
测试LED设备驱动的代码
-
总结 - 遵照规范
- cdev_init
- 设备号
- cdev_add
- class_create
- device_create:创建设备文件
- __leds_ioctl
- __leds_write
RTC驱动
-
RTC驱动的结构框图
-
platform设备驱动的一般写法
- s3c_device_rtc
- smdkv210_devices
- 设备驱动的probe函数等
- s3c_device_rtc
写驱动程序,一定区分driver和decvice!
-
RTC驱动的代码分析
rtc_dev.c -> interface -> rtc_s3c.c
class.c , rtc_dev.c :建立/dev/rtc0设备,同时注册相应的操作函数
interface.c:作为中间层,做一个传递和封装
rtc_s3c.c:具体的物理实现,各种操作硬件模块的函数
rtc_sysfs.c:
rtc_proc.c:
从RTC设备看所有驱动的写法:
- 所有驱动第一步是注册“驱动程序”。
- 注册“设备”。
- 系统在初始化时,会调用驱动程序的probe函数,完成基本硬件初始化和设备的注册。
电容触摸屏驱动
- 基本硬件工作原理
- Linux中输入子系统
- 代码分析
- linux内核的I2C模型
网络设备驱动
- 网络设备驱动特点
- 网络设备驱动的分层
- sk_buff以及围绕sk_buff的操作
- 底层设备驱动
- 小结
声卡驱动
- Linux下声卡驱动的架构
- alsa声卡设备简介
- 代码分析
- 工作重点
LCD驱动
- framebuffer设备概述
- 编写访问framebuffer设备的程序
- framebuffer驱动架构和实现过程
nandflash驱动
- 硬件原理
- nandflash驱动的框架
- nandflash驱动实现的细节