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

本文详细描述了如何对已完成的蜂鸣器驱动代码进行测试,包括编译应用程序、将驱动程序和应用程序复制到开发板、加载驱动模块以及通过LED应用程序验证蜂鸣器的开关功能。
摘要由CSDN通过智能技术生成

一. 简介

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

蜂鸣器驱动代码完善-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

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

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

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

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值