随笔分类 - ldd3笔记
驱动,I coming……
摘要:写在前面的话:上一篇,我们将PCI驱动的基础知识进行一个简单的梳理。当然,这是不够的,因此,接下来,我们进行深一步的探究。我们从下面几个方面来讲述:一,初始化设备模块当Linux内核启动并完成对所有PCI设备进行扫描、登录和分配资源等初始化操作的同时,会建立起系统中所有PCI设备的拓扑结构,此后当PCI驱动程序需要对设备进行初始化时,一般都会调用如下的代码: static int __init example_init_module (void) { /* 注册硬件驱动程序 */ if(!pci_register_driver(&example_pci_driver...
阅读全文
摘要:写在前面的话:感觉好久没有来写了,今天就来看看Linux下PCI驱动的一个基本编写规范。一,我们来看看PCI是什么。PCI---Peripheral Component Interconnect,外围设备互联总线。是一种广泛采用的总线标准,它提供了许多优于其它总线标准(如EISA)的新特性,目前已经成为计算机系统中应用最为广泛,并且最为通用的总线标准。不知道大家对总线的概念是什么,按我的通俗理解,总线就是一条国道,将许多的设备连接起来。当然,这是一种十分宽泛的理解。好,今天我们的重点并不是总线,而是在Linux驱动程序中的编写。对于驱动的编写来讲,现今的内核已经为我们实现了很多,而我们所需要的
阅读全文
摘要:写在前面的话在学习Linux设备驱动程序过程中,ldd3是必不可少的一本书,那么在书中,我们会看到书中的一个设备驱动程序----scull。今天,我们就要看看如何将这个设备驱动程序在Ubuntu11.10上进行编译;而后,我们就能利用scull更加深层次的去学习驱动程序的知识。首先,我们去下载一份ldd3的配套源码,下面是我分享的一份代码,大家可以下载使用:http://yunpan.cn/lk/sV2ZrN6JFEKKW?sid=301对源码进行解压,里面会有好几个目录,我们现在要关心的就是scull这个目录,下面的操作都会在这里进行。root@yafeng-VirtualBox:/exam
阅读全文
摘要:写在前面的话:上一篇,我们讲到了简单模块的编写,以及它的加载编译。大家可能会感觉这是不是太简单了,确实,它仅仅只是一个HelloWorld的模块,没有什么实际的意义。今天,我们就来点实际的,目标就是编写一个完整的字符设备驱动程序。首先,我们来看看怎么样的文件时字符设备驱动。它们通常位于/dev目录下,字符设备驱动程序的设备文件可通过“ls-l”命令输出的第一列中的"c"来识别。块设备也在/dev目录下,它们由字符"b"来识别。如下: 1 1 [root@localhost dev]# ls -l 2 2 crw-rw---- 1 root tty 2,
阅读全文
摘要:我的博客: http://www.yewusishi.com/ 希望大家指教写在前面的话:linux的学习有很多的切入点,但是从我学习的观点来看,设备驱动是一个不错的切入点。至于理由,个人觉得最重要的一点就是容易去实践。众所周知,读万卷书不如行万里路。研究linux也是如此,只有在实践中摸索,在实践中将自己所学的知识融会贯通。而设备驱动的学习可以做到这一点。在讲述设备驱动程序的书籍中,开篇都会讲到两个词的概念--机制和策略。我们先来看看ldd3中对它们的定义:机制---需要提供什么功能策略---如何使用这些功能这样就很清楚了啊,我们驱动程序提供的是一种机制,而所谓的策略则是我们的上一层去解释,
阅读全文

浙公网安备 33010602011771号