Linux下SPI设备驱动实验:测试读取ICM20608设备中数据是否正常

embedded/2024/9/20 7:21:46/ 标签: linux, 驱动开发, arm开发

一. 简介

前面文章实现了 SPI设备的读写功能,也对ICM20608设备中(即SPI设备)寄存器里的数据进行了读取。文章如下:

Linux下SPI设备驱动实验:读取ICM20608设备的数据-CSDN博客

本文对驱动功能进行测试,即通过运行应用程序,调用SPI驱动代码,从而验证读取ICM20608设备数据的功能是否正常。

二. Linux下SPI设备驱动实验:测试读取ICM20608设备中数据是否正常

1. 拷贝驱动程序与测试程序到开发板系统下

 注意:这里开发板是通过nfs服务加载的方式,从ubuntu系统加载文件系统的。所以,这里只需要将驱动与测试程序拷贝到 nfs服务所设置的目录(即ubuntu系统下的某个目录下)即可。

将前面编译生成的驱动程序与测试程序到开发板系统下:

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/18_spi$ sudo cp spi_icm20608.ko icm20608_app /home/wangtian/linux/nfs_File/rootfs/lib/modules/4.1.15/ -f

2. 开发板上电

开发板上电后进入文件系统 /lib/modules/4.1.15/目录下,加载驱动模块:

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

这里spi_icm20608.ko模块前面已经加载过,所以,不需要运行 "depmod"命令。

加载驱动模块:

可以看出,驱动模块加载正常,probe函数运行了。同时也可以读出ICM20608设备的ID号。

运行应用程序

运行应用程序 icm20608_app:

可以看出,ICM20608设备中的数据已经获取到。所获取的数据包括:g为陀螺仪的x,y,z三个方向的角速度值,a为加速度计的x,y,z三个方向的值。

这里开发板是水平放置的,所以陀螺仪的值都为接近 0的值,而加速度计只是在 z方向上是1,说明这里获取到的数据是正常的。

卸载驱动模块

运行 "rmmod spi_icm20608.ko"命令卸载驱动模块:

可以看出,驱动模块卸载后运行了 remove函数,也没有错误的Log信息。说明驱动模块正常卸载了。


http://www.ppmy.cn/embedded/10940.html

相关文章

k8s的服务Service暴露应用

k8s的服务Service暴露应用 Kubernetes(k8s)是一个开源的容器编排系统,用于自动化应用部署、扩展和管理。在k8s中,Service是管理Pod访问的关键组件,它允许你定义如何访问运行在集群中的Pod。本文将详细介绍Service的概…

zustand关于状态变化,是写在内部,还是外部

在使用Zustand时,通常建议将逻辑写在Zustand内部。Zustand是一个状态管理库,它提供了一种简单且强大的方式来管理状态,并且它的设计初衷就是为了让状态管理更加简洁和直观。 在Zustand内部定义状态和操作函数,并通过useStore hoo…

蓝桥杯第17169题——兽之泪II

问题描述 在蓝桥王国,流传着一个古老的传说:在怪兽谷,有一笔由神圣骑士留下的宝藏。 小蓝是一位年轻而勇敢的冒险家,他决定去寻找宝藏。根据远古卷轴的提示,如果要找到宝藏,那么需要集齐 n 滴兽之泪&#…

外呼系统呼叫系统有什么用又有什么优势?

现在外呼系统的应用越来越广泛了,是很多企业进行电话营销的首选,那在电销行业中,电销外呼系统有什么用?外呼系统有什么优势? 一、电销外呼系统有什么用 伴随着企业客户越来越多,对于回访客户方面&#xff…

Vue.js(自定义指令)

自定义指令 Vue.js中,除了预定义的13个指令外,还允许用户自定义扩展指令。创建自定义指令 inserted( el ){ //当元素被加载到DOM树时触发 .... el 为当前一个写有v-指令的DOM元素对象 函数中,执行原生的DOM API }})- 强调: ‘指令名’不用加…

Flink面试(1)

1.Flink 的并行度的怎么设置的? Flink设置并行度的几种方式 1.代码中设置setParallelism() 全局设置: 1 env.setParallelism(3);  算子设置(部分设置): 1 sum(1).setParallelism(3) 2.客户端CLI设置&#xff0…

HTML使用jQuery实现两个点击按钮,分别控制改文本字体颜色和字体大小

jQuery 简介 jQuery 是一个广泛使用的 JavaScript 库&#xff0c;旨在简化对 HTML 文档的操作、事件处理、动画效果和 AJAX 等操作。 案例源码 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name&q…

Python网络爬虫项目开发实战:怎么处理下载缓存

注意:本文的下载教程,与以下文章的思路有相同点,也有不同点,最终目标只是让读者从多维度去熟练掌握本知识点。 下载教程:Python网络爬虫项目开发实战_下载缓存_编程案例解析实例详解课程教程.pdf 一、下载缓存的简介 在网络爬虫项目开发中,下载缓存是一个重要的优化手段,…

使用甘特图来做时间管理

在这个追求效率的时代,掌握高超的时间管理技能几乎等同于掌控了成功。事实上,时间就是金钱,更是稀缺资源。那么,如何高效地规划和利用时间呢?甘特图应该是您的必备武器之一。 甘特图(Gantt chart)名字虽然有些陌生,但它的使用范围确实广泛。无论是全职妈妈安排家务,还是上市公…

LLAMA 3的测试之旅:在GPT-4的阴影下前行

Meta终于发布了他们长期期待的LLAMA 3模型&#xff0c;这是一个开源模型&#xff0c;实际上提供了一系列新的功能&#xff0c;使得模型在回答问题时表现得更好。这对AI社区来说是一个真正的里程碑事件。 Meta正在发布新版本的Meta AI&#xff0c;这是一种可以在他们的应用程序和…

Nginx第1篇-安装和简单配置

Nginx可以做什么 可以做静态HTTP服务器做负载均衡做正向代理做反向代理 正向代理和反向代理 正向代理&#xff1a; 是一个位于客户端和目标服务器之间的服务器(代理服务器)&#xff0c;为了从目标服务器取得内容&#xff0c;客户端向代理服务器发送一个请求并指定目标&…

管理情绪方法【你的观点“稳定”你的情绪】

我们的理想是什么&#xff1f; 不断提升自己的层次&#xff0c;每个人的满意条件是不一样 自己对自己负责、情绪靠自己去调整 不敢认错&#xff0c;不是不认错、嘴巴推&#xff0c;内心要承认 人最可靠的是改变自己&#xff0c;不是改变别人 一切都是不一定的&#xff0c;即相…

PVE grub resue错误修复 lvmid BUG

服务器断电后启动不起来&#xff0c;显示grub resue 找了半天没有找到修复方法。看官方文档有一处Recovering from grub “disk not found” error when booting from LVM 极为类似。https://pve.proxmox.com/wiki/Recover_From_Grub_Failure 下面是处理过程。 使用PVE 6.4启…

基于SSM+Jsp+Mysql的电器网上订购系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

Java注解相关

Java注解相关 TableId注解RequiredArgsConstructor TableId注解 需要 import com.baomidou.mybatisplus.annotation.TableId; <!-- 各个依赖的版本号 --><properties><spring-boot.version>3.2.5</spring-boot.version><java.version>17</j…

关于pdf.js中文本坐标尺寸的使用

一个电子教材项目中有这样一个需求&#xff1a; 用户向网站上传一个PDF书籍后&#xff0c;网站可以对PDF书籍进行解析&#xff0c;并支持用户对PDF书籍的每一页做一些操作&#xff0c;比如&#xff1a;为英语课本的单词和句子添加音频热区。因为热区数量很多&#xff0c;所以&a…

界面组件库DevExpress Office File API(WinForms WPF)v24.1新功能预览

本文描述了界面组件库DevExpress的Office File API&#xff08;WinForms & WPF&#xff09;和受Office启发的控件在v24.1中发布的一些功能&#xff0c;并详细介绍了我们当前的抢先体验预览版本v24.1中的内容。 DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满…

猴子摘桃问题(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int sum 1;int i 0;//运算&#xff1b;for (i 1; i < 10; i){//运算&#xff1b;sum …

【Linux开发 第十三篇】shell编程

shell编程 shell编程shell脚本函数 数据库备份 shell编程 对于后端开发&#xff0c;掌握shell编程是非常有必要的&#xff0c;可以对服务器进行维护&#xff0c;同时也可以对数据库进行操作 shell是一个命令解释器&#xff0c;它为用户提供了一个向Linux内核发送请求来运行的界…

YOLO的前世今生以及来龙去脉的背景介绍

YOLO&#xff08;You Only Look Once&#xff09;算法是一种流行的目标检测算法&#xff0c;它的核心思想是将目标检测任务转换为一个单次推断问题。与传统的目标检测方法不同&#xff0c;YOLO算法通过一个统一的神经网络同时预测图像中的目标位置和类别。这种设计使得YOLO能够…