当前位置: 首页 > news >正文

第15篇:Linux设备驱动程序入门<二>

Q:如何理解设备驱动程序模块的基本结构?

A:一个规范的驱动模块包含的结构按顺序由头文件、模块参数、模块功能函数、模块加载函数、模块卸载函数和模块许可声明组成,以下简单介绍其中必须的组成部分:

1. 头文件:驱动模块会使用内核中的许多函数,所以必须包含必要的头文件。module.h(包含了加载模块时需要使用的大量符号和函数定义)和init.h(包含了模块加载函数和模块卸载函数的宏定义)是所有驱动模块都必须包含的。

2. 模块加载函数:模块加载时要执行的函数,是模块的初始化函数,如main()函数一样。

3. 模块卸载函数:模块卸载时要执行的函数,清除了加载函数里分配的资源。

4. 模块许可声明:表示模块受内核支持的程度。使用MODULE_LICENSE表示模块的许可权限。内核若加载无许可声明的模块,会收到内核加载了一个非标准模块的警告。内核可以识别的许可权限如下。

注:后续实验里我们编写的设备驱动程序模块的许可声明写MODULE_LICENSE("GPL")即可。

相关文章:

  • MicroPython 开发ESP32应用教程 之 ADC及应用实例:电池电量检测并显示
  • js闭包概念和使用
  • 从实列中学习linux shell5: 利用shell 脚本 检测硬盘空间容量,当使用量达到80%的时候 发送邮件
  • 安恒安全培训实习生,CTF方向面试题!
  • crashpad 编译
  • MacOS 安装 cocoapods
  • 解读 AI绘画工作流ComfyUI Stable Diffusion
  • react中封装一个预览.doc和.docx文件的组件
  • TCP三次握手、四次挥手+多线程并发处理
  • ceph存储原理
  • 【UE5】“对不起,您的客户端未能传递登录所需的参数”解决办法
  • Linux Quota 显示空间占用远大于实际数据的问题排查记录
  • 01 mysql 安装(Windows)
  • 32单片机——独立看门狗
  • 算法基础学习|03整数二分
  • 如何编制研发部门绩效考核制度
  • 删除k8s某命名空间,一直卡住了怎么办?
  • java之Integer、Double自动拆装箱比较,踩坑值int和Integer比较之空指针异常
  • 垒球世界纪录多少米·棒球1号位
  • 三格电子上新了——超高频RFID读写器
  • 解放日报:服务国家战略,加快建成科技创新高地
  • 排除燃气爆炸、人为放火可能,辽宁辽阳火灾事故起火原因正在调查
  • 交行一季度净利253.72亿元增1.54%,不良率微降
  • 野猪穿过江苏电视台楼前广场,被抓捕后送往红山森林动物园
  • 民航局:中方航空公司一季度运输国际旅客同比大增34%
  • 王庆成:儒家、墨家和洪秀全的“上帝”