【Linux驱动开发】新字符设备驱动开发的通用模板
更新以gitee为准:
卸载时则需要删除
同时也要用函数去注销外部的变量
为了适配性 我们可以按如下定义dev:
在打开驱动时 可以将上面的结构体传入私有属性内
按以下代码自动进行设备号分配 在安装时就能自动分配


如果是第一次编译 则可能有所不同 需要根据实际手册来
以下是我编译好 打包好的虚拟机
然后再模块注册 需要调用到以下函数:
最后在结尾添加作者和许可信息
编译驱动
编译前要配置环境变量:
安装驱动
将编译好的驱动推荐放置到ARM板子的目录下
创建设备节点文件:(如果自动创建就不需要)
查看节点文件:

最后如果不需要了 则卸载
卸载模块:
或
自动创建设备节点文件
否则就需要手动去添加
首先要创建一个 class 类,class 是个结构体,定义在文件 里面。 是类创建函数, 是个宏定义
然后使用 函数在类下面创建设备
如在已知设备号的情况下进行注册:
以上这些设备号、类、驱动等变量太多 可以用一个结构体来表示
通过开发字符驱动等设备 编译成驱动*.ko文件 然后安装后即可调用
驱动设备号
动态分配则用以下函数申请:
或者采用以下两个函数都能来进行申请 第二个函数首先得是确定了主设备号的
如:
注销字符设备之后要释放掉设备号 则是调用:
直接传入设备号数量即可
地址映射,虚拟内存和硬件内存地址
卸载则用:
写:
字符驱动
设置好好以后 就可以在在 write、read、close 等函数中直接读取 即可得到设备结构体
旧字符驱动
需要编写驱动入口和退出函数
然后再模块注册 需要调用到以下函数:
另外 在write和read函数中 用户不得直接访问内存空间 所以要借助和来进行操作
最后在结尾添加作者和许可信息
然后就可以开始编译
新字符驱动
卸载时则需要删除
同时也要用函数去注销外部的变量
加上自动创建设备树等功能 则完整代码为:
然后就可以去编译了
最后进行测试即可
到此这篇Linux驱动开发进阶(linux驱动开发教程视频)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/goyykf/41428.html