迅为RK3568开发板驱动开发指南helloworld驱动实验-驱动的基本框架

发布时间:2025-4-2 14:40    发布者:就是塔塔
Linux 驱动的基本框架主要由模块加载函数,模块卸载函数,模块许可证声明,模块参数,块导出符号,模块作者信息等几部分组成,其中模块参数,模块导出符号,模块作者信息是选的部分,也就是可要可不要。剩余部分是必须有的。我们来看一下这几个部分的作用:
1 模块加载函数
当使用加载驱动模块时,内核会执行模块加载函数,完成模块加载函数中的初始化工作。
2 模块卸载函数
当卸载某模块时,内核会执行模块卸载函数,完成模块卸载函数中的退出工作。
3 模块许可证声明
许可证声明描述了内核模块的许可权限,如果不声明模块许可,模块在加载的时候,会收到“内核被污染(kernel tainted)”的警告。可接受的内核模块声明许可包括“GPL”“GPL v2”。
4 模块参数(可选择)
模块参数是模块被加载的时候可以传递给它的值。
5 模块导出符号(可选择)
内核模块可以导出的符号,如果导出,其他模块可以使用本模块中的变量或函数。
6 模块作者信息等说明(可选择)
上一小节我们说,helloworld 驱动麻雀虽小五脏俱全,我们来分析 helloworld 驱动。通过helloworld 代码再来看驱动框架。
(1)模块加载函数:

1.jpg
(2)模块卸载函数:

2.jpg

(3)模块许可证声明

3.jpg
(4)模块作者信息
4.jpg

(5)头文件

5.jpg
通过上面的分析,helloworld 驱动是不是包含了驱动框架的所有必要的部分呢。因此helloworld 驱动我们可以看作是驱动代码的模板。任何一个驱动代码都用它作为基础来编写实现。同学们要将他记忆下来!

本文地址:https://www.eechina.com/thread-885038-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

  • Microchip视频专区
  • 5分钟详解定时器/计数器E和波形扩展!
  • 为何选择集成电平转换?
  • 基于CEC1712实现的处理器SPI FLASH固件安全弹性方案培训教程
  • 无线充电基础知识及应用培训教程3
  • 贸泽电子(Mouser)专区
关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表