Chinaunix首页 | 论坛 | 博客
  • 博客访问: 652295
  • 博文数量: 90
  • 博客积分: 1201
  • 博客等级: 少尉
  • 技术积分: 2048
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-09 14:28
文章分类

全部博文(90)

文章存档

2013年(10)

2012年(80)

分类:

2012-07-20 10:40:42

原文地址:README_for_Driver 作者:add358


看内核源码时,先看README文件是个很好的习惯;对于这里来说,也是如此。

1 目的
  写驱动系列文章的目的是为了总结个人对驱动的理解,以此来完善自身的知识架构,
以及为往后开发作参考;这些文章讲述各种驱动接口或机制的运用并给出示例;
且非必要的情况下,是不会阐述这些接口或机制的具体实现原理或实现方法。

2 驱动架构

  目前对驱动的理解分为三个部分,为基础部分、字符/块/网络设备驱动部分、各种驱动模式;
  2.1基础部分(Essential)
    2.1.1.......编写驱动基本步骤
    2.1.2.......驱动琐碎知识
    2.1.3.......调试技术
    2.1.4.......内核数据类型
    2.1.5.......内核数据结构
                 a) 双向链表
    2.1.6.......时间获取和比较
    2.1.7.......延迟操作
    2.1.8.......延缓操作
                 a) 定时器(timer)
                 b) tasklet
                 c) 工作队列
    2.1.9.......内核线程
    2.1.10......并发与竞争
                 a)并发与竞态
                 b)原子操作
                 c)自旋锁
                 d)信号量与互斥信号量
                 e)等待队列
                 f)完成量
    2.1.11.....设备模型
  2.2字符设备驱动
  2.3块设备驱动
  2.4网络设备驱动
  2.5驱动模式
    2.5.1 platform
    2.5.2 input
    2.5.3 pci
    2.5.4 usb
    2.5.5 iic
    2.5.6 iis
    2.5.7 ......

3 驱动系列文章的约定
  3.1 使用"#command"或"$command",表示要在命令行输入"commond"命令;例如:"#lsmod","$vim"。

A1 参考书籍
 "
 "Essential Linux Device Drivers"

注:本文会在后续阶段不断完善;
    所有数据结构与接口是基于linux-3.2.1内核的;
    该系列文章纯属个人见解,如有出入,不吝赐教
    转载本文时请注明出自:add358.blog.chinaunix.net
阅读(1801) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~