LED driver驅動可以正常加載後,需要寫一個測試程序在用戶空間測試一下驅動,測試LED驅動程序是否能控制LED的點亮或熄滅。
方法是寫一個C的測試代碼,編譯後在用戶空間執行,和操作文件的命令一樣打開LED driver驅動設備文件,寫LED driver驅動設備文件,實現控制LED等。
#include <sys/types.h>
#include <sys/stat.h>
#include <linux/fs.h>
#include <asm-generic/fcntl.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
int fd;
int val = 3;
//打開myled設備
fd= open("/dev/myled",O_RDWR);
if(fd < 0)
printf("can't open!\n");
//如果輸入的指令數量等於2,則提示輸入on或off
if (argc !=2)
{
printf("Usage :\n");
printf("%s <on|off> :\n", argv[0]);
return 0;
}
//輸入on/off,給對應的變量val賦值1/0
if (strcmp(argv[1], "on") == 0)
{
val = 1;
}
else
{
val = 0;
}
//將用戶空間的數據傳遞到內核層
write(fd, &val, sizeof(int));
close(fd);
return 0;
}
在linux-3.4/driver/char/myled目錄下,輸入如下終端命令,編譯後可以在linux-3.4/driver/char/myled目錄看到一個LED_test可執行文件。
開機啓動系統,從串口登錄進目標板系統,在Ubuntu命令行終端操作LED_test執行文件。
開發板LED燈點亮(見下圖):
如LED能正常工作,說明上一節的LED驅動成功控制LED燈。
接下來在HAL層增加接口文件,以便JNI層能調用到內核驅動層,下一節:Android驅動開發-- 3.HAL層。