蜂蜜器实验-驱动代码测试

2024-02-18 23:28

本文主要是介绍蜂蜜器实验-驱动代码测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一. 简介

上一篇文章实现了蜂鸣器驱动代码,实现关闭蜂鸣器与打开功能。文章地址如下:

蜂鸣器驱动代码完善-CSDN博客

本文对所实现的蜂鸣器驱动代码进行测试。

二.  蜂鸣器驱动代码测试

1.  准备应用程序

这里应用程序还使用 前面实现所使用的Led应用程序 led_app,调用蜂鸣器驱动程序,最终驱动蜂鸣器的开与关。

应用程序代码 led_app.c代码实现如下:

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>/*
* 打开/关闭 Led灯
* 参数:
* ./app_name /dev/beep  0  //关闭 beep
* ./app_name /dev/beep  1  //打开 beep
*/
int main(int argc, char* argv[])
{int fd = 0,count = 0;char * device_name = NULL;unsigned int led_value[1] = {0};if(argc != 3){printf("main's param number error!\n");return -1;}device_name = argv[1];fd = open(device_name, O_RDWR);if(fd < 0){printf("open led device failed!\n");return -1;}led_value[0] = atoi(argv[2]); //将字符转为数字count = write(fd, led_value, sizeof(led_value));if(count < 0){printf("write data failed!\n");close(fd);}close(fd);return 0;
}

(1)  首先,编译应用程序 led_app.c

编译 led_app.c的命令如下:

arm-linux-gnueabihf-gcc led_app.c -o led_app

(2) 其次,拷贝 应用程序led_app 到开发板上

将 编译生成的应用程序拷贝到开发板上,进入 led_app.c所在目录,输入如下命令进行拷贝:

sudo cp led_app /home/wangtian/linux/nfs_File/rootfs/lib//modules/4.1.15/ -f

2.  驱动测试

(1)  首先,将驱动程序拷贝到开发板上

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

将 7_beep工程下编译生成的驱动文件 beep.ko,拷贝到 开发板系统 /lib/modules/4.1.15/目录下,这里系统存放在 /home/wangtian/linux/nfs_File/ 目录下,命名是 rootfs:

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/7_beep$ sudo cp beep.ko /home/wangtian/linux/nfs_File/rootfs/lib/modules/4.1.15/ -f
[sudo] wangtian 的密码: 
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/7_beep$ 
(2) 其次,加载驱动模块

注意:这里第一次运行 "modprobe beep.ko" 命令加载驱动之前,需要先运行 "depmod" 命令。因为 beep.ko驱动模块是第一次被加载。

开发板上电后,进入系统 /lib/modules/4.1.15目录下,查看是否存在驱动程序 beep.ko:

运行 "modprobe beep.ko" 命令,加载驱动模块:

(3) 最后,测试驱动程序

运行应用程序,测试驱动程序。打开 蜂鸣器:

/lib/modules/4.1.15 # ./led_app /dev/beep 1

这时可以确定蜂鸣器是否响,正常情况下这时蜂鸣器会响。

关闭蜂鸣器:

/lib/modules/4.1.15 # ./led_app /dev/beep 0

这时可以确认蜂鸣器是否关闭,正常情况下蜂鸣器的响声会被关。

卸载驱动模块,具体卸载驱动命令如下:

注意:一般在测试完驱动模块后,可以卸载掉驱动模块!

这篇关于蜂蜜器实验-驱动代码测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/722778

相关文章

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

Java实现自定义table宽高的示例代码

《Java实现自定义table宽高的示例代码》在桌面应用、管理系统乃至报表工具中,表格(JTable)作为最常用的数据展示组件,不仅承载对数据的增删改查,还需要配合布局与视觉需求,而JavaSwing... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

HTML5实现的移动端购物车自动结算功能示例代码

《HTML5实现的移动端购物车自动结算功能示例代码》本文介绍HTML5实现移动端购物车自动结算,通过WebStorage、事件监听、DOM操作等技术,确保实时更新与数据同步,优化性能及无障碍性,提升用... 目录1. 移动端购物车自动结算概述2. 数据存储与状态保存机制2.1 浏览器端的数据存储方式2.1.

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,