自己站網(wǎng)站如何進(jìn)行搜索引擎優(yōu)化
一. 簡介
上一篇文章實(shí)現(xiàn)了蜂鳴器驅(qū)動代碼,實(shí)現(xiàn)關(guān)閉蜂鳴器與打開功能。文章地址如下:
蜂鳴器驅(qū)動代碼完善-CSDN博客
本文對所實(shí)現(xiàn)的蜂鳴器驅(qū)動代碼進(jìn)行測試。
二.? 蜂鳴器驅(qū)動代碼測試
1.? 準(zhǔn)備應(yīng)用程序
這里應(yīng)用程序還使用 前面實(shí)現(xiàn)所使用的Led應(yīng)用程序 led_app,調(diào)用蜂鳴器驅(qū)動程序,最終驅(qū)動蜂鳴器的開與關(guān)。
應(yīng)用程序代碼 led_app.c代碼實(shí)現(xiàn)如下:
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>/*
* 打開/關(guān)閉 Led燈
* 參數(shù):
* ./app_name /dev/beep 0 //關(guān)閉 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]); //將字符轉(zhuǎn)為數(shù)字count = write(fd, led_value, sizeof(led_value));if(count < 0){printf("write data failed!\n");close(fd);}close(fd);return 0;
}
(1)? 首先,編譯應(yīng)用程序 led_app.c
編譯 led_app.c的命令如下:
arm-linux-gnueabihf-gcc led_app.c -o led_app
(2) 其次,拷貝 應(yīng)用程序led_app 到開發(fā)板上
將 編譯生成的應(yīng)用程序拷貝到開發(fā)板上,進(jìn)入 led_app.c所在目錄,輸入如下命令進(jìn)行拷貝:
sudo cp led_app /home/wangtian/linux/nfs_File/rootfs/lib//modules/4.1.15/ -f
2.? 驅(qū)動測試
(1)? 首先,將驅(qū)動程序拷貝到開發(fā)板上
注意:開發(fā)板的系統(tǒng)是通過 nfs服務(wù)掛載方式訪問 ubuntu系統(tǒng)的。即 系統(tǒng)文件存放在 ubuntu系統(tǒng)所設(shè)置的 nfs目錄下!而開發(fā)板通過 nfs服務(wù)加載系統(tǒng)文件!
將 7_beep工程下編譯生成的驅(qū)動文件 beep.ko,拷貝到 開發(fā)板系統(tǒng) /lib/modules/4.1.15/目錄下,這里系統(tǒng)存放在 /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) 其次,加載驅(qū)動模塊
注意:這里第一次運(yùn)行 "modprobe beep.ko" 命令加載驅(qū)動之前,需要先運(yùn)行 "depmod" 命令。因?yàn)?beep.ko驅(qū)動模塊是第一次被加載。
開發(fā)板上電后,進(jìn)入系統(tǒng) /lib/modules/4.1.15目錄下,查看是否存在驅(qū)動程序 beep.ko:
運(yùn)行 "modprobe beep.ko" 命令,加載驅(qū)動模塊:
(3) 最后,測試驅(qū)動程序
運(yùn)行應(yīng)用程序,測試驅(qū)動程序。打開 蜂鳴器:
/lib/modules/4.1.15 # ./led_app /dev/beep 1
這時(shí)可以確定蜂鳴器是否響,正常情況下這時(shí)蜂鳴器會響。
關(guān)閉蜂鳴器:
/lib/modules/4.1.15 # ./led_app /dev/beep 0
這時(shí)可以確認(rèn)蜂鳴器是否關(guān)閉,正常情況下蜂鳴器的響聲會被關(guān)。
卸載驅(qū)動模塊,具體卸載驅(qū)動命令如下:
注意:一般在測試完驅(qū)動模塊后,可以卸載掉驅(qū)動模塊!