Linux字符设备驱动程序的注册

11-20| http://www.dianzi6.com | arm嵌入式|人气:878

Linux字符设备驱动程序的注册

  字符设各是Linux中最简单的设备。

  在Linux中,字符设各是用一个叫做字符设备结构的数据结构char device struct来描述的。为了管理上的方便,系统维护了一个数组chrdevsLJ,该数组的每一项都代表一个字符没各。

  在文件linux/fs/char_dev.c中定义的char_device_struct的数据结构及数组chrdevs[]代码如下:

  结构中的一个域name是指向设备驱动程序名的指针;另一个域fops是指向-个封装了文件操作函数集结构的指针。这些文件操作函数就是对这个字符设备进行具体的如打开、读、写、关闭等文件操作驱动程序。

  字符设备注册表结构如图所示。当安装一个字符设各时,须调用注册函数regester chardev()向注册表插入一个新的表项。函数regester_chardev()的原型如下:


字符设备驱动程序的注册

  图 字符设备驱动程序的注册

  当代表-个字符设备的文件被进程打开日1,系统根据设备主、次设各号,查询上述的chrdevs[]数组,并获得fops指针和为进程设置-个描述这个字符特眯文件跑数握结构file,进而通过fops指针调用指定的驱动程序。

  取消注册的函数为unregister_chrdev()。其原型如下:

  int unregister_chrdev int major,const char*name):

  设备驱动程序的注册和取消注册应分别在模块的初始化函数和析构函数中完成。

  



   如果觉得 Linux字符设备驱动程序的注册这篇文章不错,可以推荐给朋友分享哦。
本文Tags:arm嵌入式系统,arm系统,arm开发,arm嵌入式,
相关arm嵌入式资料


温馨提示; 本站的资料全部免费下载,为方便下次找到本站记得将本站加入收藏夹哦,牢记网址http://www.dianzi6.com

此页提供Linux字符设备驱动程序的注册arm嵌入式系统,arm系统,arm开发, arm嵌入式参考。本站还有更多的arm嵌入式相关资料分享。
Copyright© www.dianzi6.com Inc. All rights reserved 。 1 2 3 4 5 6 7 8