字符设备驱动高级篇4——设备类(自动创建和删除设备文件的作用)相关代码分析

来源:互联网 发布:江边城外 知乎 编辑:程序博客网 时间:2024/05/17 05:15

以下内容源于朱有鹏《物联网大讲堂》课程的学习整理,如有侵权,请告知删除。

主要涉及class_create和device_create函数。


1、sys文件系统简介

(1)sys文件系统的设计思想

  • 将内核的一些信息,以文件的形式列在sys目录下。应用层通过读写该目录下的文件,可以和内核进行一些信息交互。

(2)设备类的概念

  • /sys/class,内核将驱动进行分类,比如和声音有关的、和时钟有关的;
  • class_creat() 创建的;

(3)/sys/class/xxx/ 中的文件的作用

  • 目录下有dev,event,power,subsystem等文件;
  • 例如cat dev,得知dev中内容是设备号;
  • 例如event是内核给udev传递的信息的地方;
  • 这表明可以在应用层得知内核的一些数据结构、状态,这也是sys文件系统的意义。

2、函数追踪

(1)class_create
  • class_create
  •        __class_create
  •                __class_register
  •                       kset_register
  •                             kobject_uevent:内核发送uevent给应用层
(2)device_create
  • device_create
  •       device_create_vargs
  •             kobject_set_name_vargs:设置设备的名字
  •             device_register:注册设备
  •                   device_add
  •                         kobject_add
  •                        device_create_file:这些函数都是用来创建/sys/class/xxx/中的内容的
  •                        device_create_sys_dev_entry
  •                        devtmpfs_create_node
  •                        device_add_class_symlinks
  •                        device_add_attrs
  •                        device_pm_add
  •                        kobject_uevent
阅读全文
0 0
原创粉丝点击