linux设备驱动归纳总结

前言:

(总结已经基本写完,这段时间我会从新排版和修正。错误总会有的,望能指正!)

前段时间学习了嵌入式驱动,趁着没开始找工作,这段时间我会每天抽出时间来复习。

我的总结是根据学习时的笔记(李杨老师授课)、《linux内核设计与实现》第三版、《linux设备驱动程序》第三版和《linux设备驱动开发详解》第一版来归纳的。文章中涉及一些自己的想法,并不能保证所说的一定正确。 我也是一位linux初学者,在这里发博也是想跟大家分享技术,同时也希望别人能够指正错误。

我把一些知识点拆分来讲述,文章会写得比较长,而且章节涉及的知识不会很多,但这是我复习时的思路。

因为我学习的是ARM-linux,除了第一章外,其他的代码都是通过交叉编译后在ARM9上运行,我使用的内核版本是我学习时候使用的2.6.29内核。

以下的文章若有侵权,请马上与我联系,我一定立即删除。

·linux设备驱动归纳总结(一):内核的相关基础概念

|

|---------1.1、linux设备驱动的作用

|         1.2、内核代码树介绍

|         1.3、内核补丁

|         1.4、内核中的Makefile

|         1.5、子目录下的Makefile和Kconfig

|         1.6、内核和模块的编译

·linux设备驱动归纳总结(二):模块的相关基础概念

|

|---------2.1、初探linux内核模块——hello world!

|         2.2、内核中的printk

|         2.3、模块传参——module_param

|         2.4、内核函数间的调用——EXPRORT_STMBOL

·linux设备驱动归纳总结(三):1字符型设备之设备申请

·linux设备驱动归纳总结(三):2open.close.read.write

·linux设备驱动归纳总结(三):3面向对象思想和lseek

·linux设备驱动归纳总结(三):4.ioctl的实现

·linux设备驱动归纳总结(三):5.阻塞型IO实现

·linux设备驱动归纳总结(三):6.poll和sellct

·linux设备驱动归纳总结(三):7.异步通知fasync

·linux设备驱动归纳总结(四):1.进程管理的相关概念

·linux设备驱动归纳总结(四):2.进程调度的相关概念

·linux设备驱动归纳总结(四):3.抢占和上下文切换

·linux设备驱动归纳总结(四):4.单CPU下竞态和并发

·linux设备驱动归纳总结(四):5.SMP下的竞态和并发

·linux设备驱动归纳总结(五):1.在内核空间分配内存

·linux设备驱动归纳总结(五):2.操作硬件——IO内存

·linux设备驱动归纳总结(五):3.IO静态映射

·linux设备驱动归纳总结(五):4.写个简单的LED驱动

·linux设备驱动归纳总结(六):1.中断的实现

·linux设备驱动归纳总结(六):2.分享中断号

·linux设备驱动归纳总结(六):3.中断下半部之tasklet

·linux设备驱动归纳总结(六):3.中断下半部之工作队列

·linux设备驱动归纳总结(七):1.时间管理与内核延时

·linux设备驱动归纳总结(七):2.内核定时器

·linux设备驱动归纳总结(八):1.总线、设备和驱动

·linux设备驱动归纳总结(八):2.match.probe.remove

·linux设备驱动归纳总结(八)3设备模型的分层与面向对象

·linux设备驱动归纳总结(八):4.总线热插拔

·linux设备驱动归纳总结(九):1.platform设备驱动

·linux设备驱动归纳总结(十):1.udev&misc

·linux设备驱动归纳总结(十一):简单的看门狗驱动

·linux设备驱动归纳总结(十二):简单的数码相框

·linux设备驱动归纳总结(十三):1.触摸屏与ADC时钟

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

2011.2.19修改《linux设备驱动归纳总结(一):内核的相关基础概念》

2011.2.22修改《linux设备驱动归纳总结(二):模块的相关基础概念》

时间: 2024-07-30 13:38:49

linux设备驱动归纳总结的相关文章

linux设备驱动归纳总结(三):5.阻塞型IO实现【转】

本文转载自:http://blog.chinaunix.net/uid-25014876-id-60025.html linux设备驱动归纳总结(三):5.阻塞型IO实现 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 一.休眠简介: 进程休眠,简单的说就是正在运行的进程让出CPU.休眠的进程会被内核搁置在在一边,只有当内核再次把休眠的进程唤醒,进程才会会重新在CPU运行

linux设备驱动归纳总结(三):6.poll和sellct【转】

本文转载自:http://blog.chinaunix.net/uid-25014876-id-61749.html linux设备驱动归纳总结(三):6.poll和sellct xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 接下来会讲系统调用select在驱动中的实现,如果对系统调用select不太懂的话,建议先看书补习一下. xxxxxxxxxxxxxxxxxxxx

linux设备驱动归纳总结(三):7.异步通知fasync【转】

本文转载自:http://blog.chinaunix.net/uid-25014876-id-62725.html linux设备驱动归纳总结(三):7.异步通知fasync xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 异步通知fasync是应用于系统调用signal和sigaction函数,下面我会使用signal函数.简单的说,signal函数就是让一个信号与与

linux设备驱动归纳总结(七):1.时间管理与内核延时【转】

本文转载自:http://blog.chinaunix.net/uid-25014876-id-100005.html linux设备驱动归纳总结(七):1.时间管理与内核延时 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 这节将介绍一些很枯燥的内核,大体是内核中时间的概念和内核延时的使用,并没有源代码. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

linux设备驱动归纳总结(三):3.设备驱动面向对象思想和lseek的实现【转】

本文转自自:http://blog.chinaunix.net/uid-25014876-id-59418.html linux设备驱动归纳总结(三):3.设备驱动面向对象思想和lseek的实现 一.结构体struct file和struct inode 在之前写的函数,全部是定义了一些零散的全局变量.有没有办法整合成到一个结构体当中?这样的话,看起来和用起来都比较方便.接下来就要说这方面的问题. 不过先要介绍一下除了fops以外的两个比较重要的结构体: 1)struct file 在内核中,f

linux设备驱动归纳总结(四):5.SMP下的竞态和并发

linux设备驱动归纳总结(四):5.多处理器下的竞态和并发 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 这节将在上一节的基础上介绍支持多处理器和内核抢占的内核如何避免并发.除了内核抢占和中断外,由于多处理起的缘故,它可以做到多个程序同时执行.所以,进程除了要防自己的处理器外,还要防别的处理器,这个就是这节要介绍的内容. xxxxxxxxxxxxxxxxxxxxxxx

linux设备驱动归纳总结(三):6.poll和sellct

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 接下来会讲系统调用select在驱动中的实现,如果对系统调用select不太懂的话,建议先看书补习一下. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 一.系统调用select的简介 简单来说,se

linux设备驱动归纳总结(九):1.platform总线的设备和驱动【转】

本文转载自:http://blog.chinaunix.net/uid-25014876-id-111745.html linux设备驱动归纳总结(九):1.platform总线的设备和驱动 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 这一节可以理解是第八章的延伸,从这节开始介绍platform设备驱动. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

linux设备驱动归纳总结(三):2.字符型设备的操作open、close、read、write【转】

本文转载自:http://blog.chinaunix.net/uid-25014876-id-59417.html linux设备驱动归纳总结(三):2.字符型设备的操作open.close.read.write 一.文件操作结构体file_operations 继续上次没讲完的问题,文件操作结构体到底是什么东西,为什么我注册了设备之后什么现象都没有?可以验证文件操作结构体的内容. file_operations是一个函数指针的集合,用于存放我们定义的用于操作设备的函数的指针,如果我们不定义,