易截截图软件、单文件、免安装、纯绿色、仅160KB

转 Linux设备驱动程序之读书笔记

Linux设备驱动程序之读书笔记(一)
                   ——第三章字符设备驱动程序
○、说明
笔记适用于Linux的2.6.10以后的内核。
笔记以Linux Device Driver3提供的scull程序(scull目录中的main.c和scull.h)为记录主线,并以该驱动程序中的各种系统调用和函数调用流程为记录顺序。比如,module_init( )和module_exit( )为相对应的一对系统调用,一般书籍中都会放在一起讨论,但是本笔记却不会这样,而是在需要调用的时候才会涉及,因此module_init( )会放在笔记开始时,也就是刚加载module时讨论,而module_exit( )则会放在笔记结束前,也就是要卸载module时再加以讨论。
该笔记的的目的是为了对Linux Device Drvier3中提到的各个知识点作一下整理,理清一下头绪,从而能让我对Linux驱动程序加深整体或者全局上的理解。
注:个人理解,有误难免!—— 笔者:曹荣荣
*******************************************
驱动程序module的工作流程主要分为四个部分:
1、 用Linux提供的命令加载驱动module
2、 驱动module的初始化(初始化结束后即进入“潜伏”状态,直到有系统调用)
3、 当操作设备时,即有系统调用时,调用驱动module提供的各个服务函数
4、 卸载驱动module
一、 驱动程序的加载
Linux驱动程序分为两种形式:一种是直接编译进内核,另一种是编译成module形式,然后在需要该驱动module时手动加载。对于前者,还有待学习。
Module形式的驱动,Linux提供了两个命令用来加载:modprobe和insmod。
其中modprobe可以解决驱动module的依赖性,即假如正加载的驱动module若引用了其他module提供的内核符号或者其他资源,则modprobe就会自动加载那些module,不过,使用modprobe时,必须把要加载的驱动module放在当前模块搜索路径中。而insmod命令不会考虑驱动module的依赖性,但是它却可以加载任意目录下的驱动module。
一般来说,在驱动开发阶段,使用/sbin/insmod比较方便,因为不用将module放入当前module搜索路径中。
一旦使用insmod加载模块,则Linux内核就会调用module_init(scull_init_module)特殊宏,其中scull_init_module是驱动初始化函数,可自定义名称。
在用insmod加载module时,还可以给module提供模块参数,但是这需要在驱动源代码中加入几条语句,让模块


相关文档:

Linux 下串口编程心得

Linux 下串口编程心得
        我刚刚完成了一个串口的项目,有一点收获,就说说这段时间的体会吧!
        一开始在网上找资料,最多是《Linux Serial HOWTO 中译版》,浏览地址:http://linux.cis.nctu.edu.tw/chinese/how-to/Serial-HOWTO.ht ......

【Linux交换分区】 交换分区格式浅析

完成本文,使用了两个工具
 1. strace
 2. google code search
.
----
swap分区有一个大小为PAGE_SIZE的页面,称为signature页,上面记录swap分区的基本信息。
static struct swap_header_v1 {
char bootbits[1024]; /* Space for disklabel etc. */
unsigned int version;
......

linux环境下安装oracle 11g database方法指导(二)

备注:
    本博内容是承接上期内容的延续,由于内容过长,因此采用分段说明,以免大家看起来疲倦,若了解更多详细的安装流程,请继续关注本博。参照原版安装手册对照安装。
4.Configure Oracle Installation Owner Shell Limits
<1>配置limits.conf文件,红色标注为增加的配置内容。
[root@myli ......

Linux中tty、 pty、pts的概念区别


Linux中tty、
pty、pts的概念区别
基本概念:
1> tty(终端设备的统称):
tty一词源于
Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘
与显示器取代,所以现在叫终端比较合适。
终端是一种字符型设备,它有多种类型,通常使用tty来 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号