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

I2C驱动实验:测试I2C驱动是否与设备匹配

一.  简介

前面一篇文章在设备树中创建 ap3216c设备节点信息。

第二篇文章编写了简单的 I2C设备驱动框架,包括 构造 i2c_driver结构体,i2c_driver的注册与注销等。文章如下:

I2C驱动实验:向设备树添加 I2C设备的设备节点信息-CSDN博客

I2C驱动实验:驱动框架搭建一-CSDN博客

本文对驱动框架代码进行测试,确定驱动是否与设备匹配成功。

二.  I2C驱动实验:测试I2C驱动是否与设备匹配

1.  将驱动模块拷贝到开发板系统下

注意:开发板的系统是通过 nfs服务挂载方式访问 ubuntu系统的。即 系统文件存放在 ubuntu系统所设置的 nfs目录下!而开发板通过 nfs服务加载系统文件。

将编译生成的 驱动模块拷贝到开发板的系统 /lib/modules/4.1.15目录下:

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/17_i2c$ sudo cp ap3216c.ko /home/wangtian/linux/nfs_File/rootfs/lib/modules/4.1.15/ -f
[sudo] wangtian 的密码: 

2.  开发板上电

开发板上电后,进入 系统 /lib/modules/4.1.15/目录下,查看驱动模块是否拷贝过来:

可以看到,ap3216c驱动模块已经存在。

3. 加载模块与卸载模块

注意:如果选择使用 "modprobe" 命令加载驱动模块,则在驱动程序第一次加载时首先运行 "depmod" 命令!

这里ap3216c.ko模块是第一次加载。

首先,执行 "depmod"命令:

加载驱动模块:

可以看到, i2c_driver结构体中 probe函数运行了,说明驱动与设备已经匹配成功。

4. 进入 /sys/bus/i2c/drivers/目录下查看驱动模块

进入/sys/bus/i2c/drivers/目录下查看是否存在 ap3216c驱动模块:

可以看出,已经存在 ap3216c驱动模块,这个名字是 在构建 i2c_driver结构体时的名字。

运行 "ls -l ap3216c"命令查看驱动模块:

可以看出,驱动魔模块 ap3216c指向了一个链接,即 设备 0-001e,而这个 0-001e这个设备就是在设备树中添加的 ap3216c设备。

至此,说明驱动已经与设备树的ap3216c设备匹配成功。

http://www.lryc.cn/news/333232.html

相关文章:

  • 5560.树的直径
  • Decoupled Multimodal Distilling for Emotion Recognition 论文阅读
  • 【css】使用display:inline-block后,元素间存在4px的间隔
  • 代码执行漏洞
  • SQLServer2022安装
  • vue2 配置@指向src
  • 用友U9 存在PatchFile.asmx接口任意文件上传漏洞
  • 如何卸载干净 IDEA(图文讲解)
  • 自动化运维(十)Ansible 之进程管理模块
  • 【leetcode279】完全平方数,动态规划解法
  • Java 元素排序(数组、List 集合)
  • 使用vite创建一个react18项目
  • 子集(迭代)(leetcode 78)
  • 汽车疲劳测试试验平台技术要求(北重厂家)
  • Redis -- 缓存雪崩问题
  • 【ARM 嵌入式 C 文件操作系列 20 -- 文件删除函数 remove 详细介绍】
  • LeetCode刷题之31.下一个排列
  • 【RISC-V 指令集】RISC-V 向量V扩展指令集介绍(九)- 向量定点算术指令
  • 【Java网络编程】IP网络协议与TCP、UDP网络传输层协议
  • C# 分布式自增ID算法snowflake(雪花算法)
  • commonJS和esModule的应用
  • (十一)RabbitMQ及SpringAMQP
  • STM32 M3内核寄存器概念
  • SQL语句的编写
  • Lecture 1~3 About Filter
  • 配置vscode链接linux
  • 论文阅读——MVDiffusion
  • Linux中的网络命令深度解析与CentOS实践
  • nginx配置实例(反向代理)
  • Flutter 解决NestedScrollView与TabBar双列表滚动位置同步问题