当前位置:网站首页 > Go语言开发 > 正文

Linux驱动开发进阶(linux驱动开发教程视频)



【Linux驱动开发】新字符设备驱动开发的通用模板

更新以gitee为准:

 
  

 
  
 
  
 
  
 
  

卸载时则需要删除

 
  

同时也要用函数去注销外部的变量

为了适配性 我们可以按如下定义dev:

 
  

在打开驱动时 可以将上面的结构体传入私有属性内

 
  
 
  

按以下代码自动进行设备号分配 在安装时就能自动分配

 
  
 
  

在这里插入图片描述
在这里插入图片描述

 
  
 
  

如果是第一次编译 则可能有所不同 需要根据实际手册来

以下是我编译好 打包好的虚拟机

 
  
 
  

然后再模块注册 需要调用到以下函数:

 
  

最后在结尾添加作者和许可信息

 
  

编译驱动

编译前要配置环境变量:

 
  
 
  
 
  

安装驱动

将编译好的驱动推荐放置到ARM板子的目录下

创建设备节点文件:(如果自动创建就不需要)

 
  

查看节点文件:

 
  

在这里插入图片描述
最后如果不需要了 则卸载
卸载模块:








自动创建设备节点文件

否则就需要手动去添加

首先要创建一个 class 类,class 是个结构体,定义在文件 里面。 是类创建函数, 是个宏定义

 
  
 
  

然后使用 函数在类下面创建设备

 
  
 
  

如在已知设备号的情况下进行注册:

 
  

以上这些设备号、类、驱动等变量太多 可以用一个结构体来表示

 
  
 
  

通过开发字符驱动等设备 编译成驱动*.ko文件 然后安装后即可调用

驱动设备号

动态分配则用以下函数申请:

 
  
 
  

或者采用以下两个函数都能来进行申请 第二个函数首先得是确定了主设备号的

 
  

如:

 
  

注销字符设备之后要释放掉设备号 则是调用:

 
  

直接传入设备号数量即可

地址映射,虚拟内存和硬件内存地址

 
  

卸载则用:

 
  
 
  

写:

 
  

字符驱动

设置好好以后 就可以在在 write、read、close 等函数中直接读取 即可得到设备结构体

旧字符驱动
 
  

需要编写驱动入口和退出函数

 
  

然后再模块注册 需要调用到以下函数:

 
  
 
  

另外 在write和read函数中 用户不得直接访问内存空间 所以要借助和来进行操作

最后在结尾添加作者和许可信息

 
  
 
  

然后就可以开始编译

新字符驱动
 
  
 
  
 
  
 
  

卸载时则需要删除

 
  

同时也要用函数去注销外部的变量

加上自动创建设备树等功能 则完整代码为:

 
  

然后就可以去编译了

 
  

最后进行测试即可

到此这篇Linux驱动开发进阶(linux驱动开发教程视频)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 广度优先搜索算法c语言实现(广度优先搜索代码c语言实现)2026-03-27 17:18:10
  • 苹果开发者账号注册正在审核中好久了(注册苹果开发者账号存在问题)2026-03-27 17:18:10
  • linux驱动开发入门与实战pdf(linux驱动开发书)2026-03-27 17:18:10
  • vs怎么用c语言(vs怎么编写c语言)2026-03-27 17:18:10
  • strace工具安装(sts开发工具安装)2026-03-27 17:18:10
  • goa电路(goa电路结构及驱动方法与流程)2026-03-27 17:18:10
  • 苹果开发者账号注册流程多少钱一年(苹果开发者账号注册需要几天)2026-03-27 17:18:10
  • 单片机程序编写用什么语言(单片机程序编写用什么语言比较好)2026-03-27 17:18:10
  • goa电路工作原理(gip电路原理)2026-03-27 17:18:10
  • ddd领域驱动开发(ddd 领域驱动)2026-03-27 17:18:10
  • 全屏图片