英文名叫Essential linux Device Drivers,,手头的英文版看着很累!想弄本中文的,但是china-pub上的书评一般啊,看过的高手说说!
( 本文摘录自eda_yll的文章,摘选了对自己有用的部分 ) 以下所指的驱动程序都是针对具体设备,并做成模块动态加载方式工作的。驱动程序框架是分层的,有些驱动并不是针对具体设备的如ext2文件系统的驱动,tcp/ip协议的驱动等等,这些可以称之为软驱动,工作于其他具体设备驱动程序之上。由于我们做的是嵌入式开发,仅仅编写最低层的设备驱动就可以了。 设备驱动程序通常分为字符设备和块设备,这是泛指分类。区别就...
请问 关于函数 int register_chrdev_region(dev_t first,unsigned int count,char *name);这个函数的参数具体是什么意思 特别是第二个参数,书上说是所请求的连续设备编号的个数。是不是说要请求多个编号,一个编号对应一个设备,也就是说要用于多个设备吗?
转贴 序言linux是Unix操作系统的一种变种,在linux下编写驱动程序的原理和思想完全类似于其他的Unix系统,但它dos或window环境下的驱动程序有很大的区别。在linux环境下设计驱动程序,思想简洁,操作方便,功能也很强大,但是支持函数少,只能依赖kernel中的函数,有些常用的操作要自己来编写,而且调试也不方便。本人这几周来为实验室自行研制的一块多媒体卡编制了驱动程序,获得了一些经验,愿与linux fans共享,有不当之处,请...
linux 2.4的内核下驱动编译出来的名字通常是*.o的文件,而在linux 2.6的内核下编译出来的文件是*.ko的文件。在编译驱动的时候,注意要在编译的时候加__DKERNEL__和_DMODULE参数。还要注意在 makefile 文件里面正确地指定 KERNELDIR 和INCLUDEDIR。驱动程序有两种加载方式,内核自动加载和手动加载。通常的做法是在调试过程中采用手动加载的方式,等调试好了之后,就可以编译到内核里面采用自动加载的方式。驱动相对于内核来说就是...
一、主设备号和此设备号 主设备号表示设备对应的驱动程序;次设备号由内核使用,用于正确确定设备文件所指的设备。内核用dev_t类型()来保存设备编号,dev_t是一个32位的数,12位表示主设备号,20为表示次设备号。在实际使用中,是通过中定义的宏来转换格式。 (dev_t)-->主设备号、次设备号 MAJOR(dev_t dev) MINOR(dev_t dev) 主设备号、次设备号-->(dev_t) MKDEV(int major,int minor) 建立一个字符设备之前,驱动程序首先...
linux设备驱动程序学习(15) -linux设备模型(热插拔、mdev 与 firmware) 热插拔 有 2 个不同角度来看待热插拔: 从内核角度看,热插拔是在硬件、内核和内核驱动之间的交互。 从用户角度看,热插拔是内核和用户空间之间,通过调用用户空间程序(如hotplug、udev 和 mdev)的交互。 当需要通知用户内核发生了某种热插拔事件时,内核才调用这个用户空间程序。 现在的计算机系统,要求 linux 内核能够在硬件从系统中增删时,...
[color="#02368d"]linux设备驱动程序调试技术 一、内核中的调试支持 在前面已经建议过:学习编写驱动程序要构建安装自己的内核(标准主线内核)。最重要的原因之一是:内核开发者已经建立了多项用于调试的功能。但是由于这些功能会造成额外的输出,并导致能下降,因此发行版厂商通常会禁止发行版内核中的调试功能。 为了实现内核调试,我在内核配置上增加了几项: Kernel hacking ---> Magic SysRq key ...
linux设备驱动的基本概念 系统调用是操作系统内核和应用程序之间的接口;设备驱动程序是操作系统内核和机器硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,它完成以下功能: 1、对设备初始化和释放。 2、把数据从内核传送到硬件和从硬件读取数据。 3、读取应用程序传送给设备文...