(一)解析:register_chrdev函数和unregister_chrdev函数

(二)register_chrdev函数原型
int register_chrdev(unsigned int major, const char *name,const struct file_operations *fops)
 

* register_chrdev() -为字符设备注册一个主号码。

* @major:用于动态分配的主要设备号或0

* @name:这一系列设备的名称

* @fops:与此设备相关联的文件操作

*

*如果@major == 0,这个函数将动态分配一个main并返回它的号码。

*如果@major > 0,此函数将尝试使用给定的设备保留设备,主要数字,将返回零成功。

1. 从上面函数原型中我们可知使用register_chrdev函数我们需要设备号,名字,还有相关文件操作就行了
2. 由于能力有限,看不懂register_chrdev里面的程序,故不粘贴全部代码出来,先知道怎么用
3. 使用示例:
major = register_chrdev(0, "first_drv", &first_drv_fops);
解析:第一个参数0则为系统自动分配设备号,并返回,使用major 变量接收
  第二个参数设置这个系列设备的名称为first_drv
  第三个参数first_drv_fops在003_linux驱动之_file_operations函数
 
(三)unregister_chrdev函数原型
int unregister_chrdev(unsigned int major, const char *name)
 
1. 同第二点可知,卸载一个字符设备只需要设备号和名自就行了
2. 使用示例:
unregister_chrdev(major, "first_drv");         
 
(四)注:
1. register_chrdev函数当然是在insmod时候应该调用了,看001_linux驱动之_驱动的加载和卸载
2. unregister_chrdev函数当然是在rmmod时候调用了。
 

 
 

最新文章

  1. JavaACOFramework的各个类介绍(part1 : Ant类)
  2. 常用excel技巧
  3. [转载] Google大数据引擎Dremel剖析(1)
  4. Debug with jdb
  5. 使用C# 实现文件锁
  6. 文件I/O(不带缓冲)之write函数
  7. 【C#4.0图解教程】笔记(第9章~第18章)
  8. c#调用api(FindFirstFile,FindNextFile)高效遍历目录文件【转载】
  9. HTML5 WebAudioAPI-实例(二)
  10. android SimpleCursorAdapter的使用
  11. 拉电流(source current)与灌电流(sink current)
  12. Hadoop权威指南: InputFormat,RecordReader,OutputFormat和RecordWriter
  13. js 实现图片压缩并转换成base64(data:image/jpeg;base64)格式
  14. 情景linux--如何优雅地退出telnet
  15. Android项目打包遇com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details
  16. java中的线程中断
  17. SQL Server 全文索引介绍(转载)
  18. java StringTokenizer
  19. js正则匹配以某字符串开始字符串
  20. LibreOJ #6007. 「网络流 24 题」方格取数 最小割 最大点权独立集 最大流

热门文章

  1. python学习-44 程序的解耦 (不是特别懂的,回头在复习)
  2. SysTick系统定时器(功能框图和优先级配置)
  3. 【搜索+set去重】Balance Scale
  4. 从零开始搭建自己的.NET Core Api框架-1目录
  5. 基于【 centos7】二 || 系统时间与网络时间同步
  6. Julia 学习
  7. docker系列五之数据卷(volumn)
  8. javascript--BOM(browser object model)五大对象
  9. 【appium】appium中的元素定位和基本操作
  10. CodeForces 822C Hacker, pack your bags!