临时占位,还没弄好,后期再修改

一、杂项设备

杂项设备可以说是对一部分字符设备的封装,还有一部分不好归类驱动也归到杂项设备。
为什么会引入杂项设备?
        • 第一、节省主设备号
        – 如果所有的驱动都是用字符设备,那么所有的设备号很快就用完了,总共就255个主设备号。
        • 第二、驱动写起来相对简单
        – 如果直接使用封装好的杂项设备,那么就可以减少一步注册主设备号的过程。

杂项设备初始化部分源文件“drivers/char/ misc.c”,这一部分通过Makefile可知,是强制编译的。而且是Linux官方(不是三星官方)出来的时候就带的,为了一些简单的驱动更容易实现。
        这部分了解即可,里面的内容也比较简单,就是给字符驱动做一个简单的封装。

二、杂项设备注册文件

杂项设备注册头文件: include/linux/miscdevice.h

结构体miscdevice以及注册函数如下所示:

• 常用的参数
                – .minor设备号
                – .name生成设备节点的名称
                – .fops指向一个设备节点文件

Linux中一切皆文件,上层调用底层也是通过读取文件的方式,注册设备节点,本质也是新建一个特殊的文件,包含文件名,打开、关闭、操作等函数
        • 包含文件结构体的头文件是“include/linux/fs.h ”
        • 文件的结构体file_operations如下所示

• 文件的结构体file_operations参数很多,根据需求选择。
• 必选的是参数是
– .owner一般是THIS_MODULE,
– .open打开文件函数
– .release关闭文件函数
• 这里在必选之外使用参数(为了介绍接下来的GPIO的操作)
– .unlocked_ioctl对GPIO的操作,应用向底层驱动传值

驱动代码,在probe_linux_module基础上写devicenode_linux_module驱

– 写代码的时候,注意一下函数调用顺序
• 编译,在开发板上加载驱动生成设备节点
– 在/dev中查看是否生成了设备节点

九、linux设备节点注册相关推荐

  1. Linux: 设备节点创建移除过程简析

    文章目录 1. 前言 2. 分析背景 3. 设备节点的创建和移除 3.1 通过 devtmpfs 创建移除设备节点 3.1.1 devtmpfs 初始化 3.1.2 通过 devtmpfs 创建设备节 ...

  2. linux 设备节点 驱动,【Linux驱动】自动创建设备节点

    开始学习驱动的时候,是将驱动程序编译成模块然后用mknod命令手动建立设备节点以提供给应用程序调用.这对于刚开始调试驱动程序的时候常用的一种方法.但是,当有种需要必须在系统启动的时候就将驱动程序就绪, ...

  3. 设备节点注册和操作方法连接

    今天把驱动程序乱七八糟的看了一通,简单总结一下. 一个完整的驱动,需要提供如下的东西, 第一,用户空间/dev下面的设备节点.当然,如果该设备仅仅是内核的使用,例如I2C,则不需要在/dev下面建立设 ...

  4. linux设备驱动 注册 命令6,Linux设备驱动调试

    GDB基本用法 GDB是GNU开源组织发布的一项强大的UNIX下的程序调试工具,GDB主要完成下面4个方面的功能 1.启动程序,可以按照工程师自定义的要求运行程序 2.让被调试的程序在工程师的指定端点 ...

  5. 一张图说明linux 设备 节点 驱动 主设备号 和次设备号之间的关系

    Linux各种设备都以文件的形式存放在/dev目录下,称为设备文件. 应用程序可以打开.关闭和读写这些设备文件,完成对设备的操作,就像操作普通的数据文件一样.为了管理这些设备,系统为设备编了号,每个设 ...

  6. linux设备驱动 注册 命令6,Linux设备驱动程序学习----6.模块的参数

    6.模块的参数 模块参数 由于系统不同,驱动程序需要的参数也许会变化,包括设备编号.控制参数等.为满足这些需求,内核允许对驱动程序指定参数,而这些参数可在装载驱动程序模块时改变.这些参数的值可以在运行 ...

  7. linux生成驱动编译的头文件,嵌入式Linux字符设备驱动——5生成字符设备节点

    嵌入式Linux字符设备驱动开发流程--以LED为例 前言 留空 头文件 #include 查看系统设备类 ls /sys/class 设备类结构体 文件(路径):include/linux/devi ...

  8. 设备节点监听--走在 input 分析之前

    在进行 Input 系统分析之前,先简单学习一下 Input 系统和 linux 交互的几个方法,因为 epoll 机制是 InputManagerServer 和 linux 设备节点交互的主要工具 ...

  9. linux IIC子系统分析(九)——实例分析通过设备节点访问I2c设备

    在< linux IIC子系统分析(四)--I2c bus初始化> 中我们创建了I2C 总线驱动,I2C adapter device 和adapter drivers也在这时创建 在&l ...

最新文章

  1. java 返回值判断_在Java中判断方法重载的条件除了参数外,还可以通过返回值类型判断。_学小易找答案...
  2. 软件开发是一门手艺活
  3. 个人喜欢的关于模式识别、机器学习、推荐系统、图像特征等方面个人主页及博客
  4. 关于NHibernate
  5. LiveVideoStackCon 2018 注册通道即将关闭
  6. java timer暂停继续_JavaScript暂停和继续定时器的实现方法
  7. 科幻作家阿西莫夫上世纪预言2019: 计算机彻底变革教育,太空移民进行中
  8. tf.name_scope()详解【命名空间其实就是给几个变量包一层名字,方便变量管理】
  9. java作业不能运行_从Windows运行时,YARN作业失败
  10. 高并发热点/单点数据_性能问题解决方案
  11. Makefile:include和-include
  12. rsync内网服务器 推送和拉取公网代码配置
  13. Java实现超市购物系统
  14. c语言学习指南app,c语言学习手册app
  15. 自动聊天机器人项目班 [一门课搞定聊天机器人]
  16. springboot返回时间问题
  17. 菜鸟笔记--函数基础
  18. osu计算机科学硕士,OSU的Computer Science and Engineering「俄亥俄州立大学计算机科学与工程系」...
  19. LaTeX 使用心得:节标题(section)中使用数学符号
  20. CF - 777D. Cloud of Hashtags 暴力

热门文章

  1. C++ 虚函数和纯虚函数
  2. visual studio 不能创建biztalk 项目
  3. 八种方法防止数据库被下载
  4. UA OPTI512R 傅立叶光学导论5 光学常用基本函数回顾
  5. VC++使用MCI播放音频文件
  6. 32位汇编语言条件伪指令和win32汇编关于windows.inc的error A2004
  7. weblogic配置文件学习总结
  8. SpringBoot集成Redis实现排行榜
  9. 3 saltstack高可用
  10. Reveal:分析iOS UI该武器