linux2.6.22.6驱动源码框架分析

来源:互联网 发布:linux ftp下载速度慢 编辑:程序博客网 时间:2024/06/05 14:49

 

1.Input驱动

  • 事件处理层(drivers/input/evdev.c、drivers/input/tsdev.c、drivers/input/joydev.c、drivers/input/mousedev.c等)
  • 核心层(drivers/input/input.c)
  • 硬件驱动层(drivers/input/keyboard/s3c2410ts.c、...)

 

2.LCD驱动

  • FB通用层(drivers/video/fbmem.c)
  • LCD控制器驱动层

 

3.I2C驱动

  • i2c核心层:提供总线注册
  • i2c设备通用层:实现文件操作
  • i2c总线驱动层:i2c控制器配置
  • i2c设备驱动层:实现

 

字符设备驱动编程流程

1.实现入口函数(模块加载函数)
    1.1 注册register_chrdev(主设备号,设备驱动模块的名字,操作方法);
    1.2 创建设备文件class_create()     class_device_create();
    1.3 申请空间或其他的某些初始化工作等等。

2.实现出口函数(模块卸载函数),在此函数做一些跟入口函数相反的事情;

3.实现file_operations结构体;

4.实现操作硬件的方法   xxx_open  xxx_write  xxx_read等等;

 

 

 注:个人学习,不妥望指正,持续改善中。

 

 

原创粉丝点击