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

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

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

代码随想录冲冲冲 Day39 动态规划Part7

198. 打家劫舍 dp数组的意义是在第i位的时候偷的最大钱数是多少 如果nums的size为0 总价值当然就是0 如果nums的size为1 总价值是nums[0] 遍历顺序就是从小到大遍历 之后是递推公式 对于dp[i]的最大价值来说有两种可能 1.偷第i个 那么最大价值就是dp[i-2]+nums[i] 2.不偷第i个 那么价值就是dp[i-1] 之后取这两个的最大值就是d

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip