原文链接:http://hi.baidu.com/tekuba/item/d72e32eb8f19713d86d9de94
测试文件 leds-test.c:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/ioctl.h>
int main(int argc, char **argv)
{
int on;
int led_no;
int fd;
if (argc != 3 || sscanf(argv[1], "%d", &led_no) != 1 ||sscanf(argv[2],"%d", &on) != 1 ||
on < 0 || on > 1 || led_no < 0 || led_no > 3) {
fprintf(stderr, "Usage: leds led_no 0|1\n");
exit(1);
}
fd = open("/dev/leds0", 0);
if (fd < 0) {
fd = open("/dev/leds", 0);
}
if (fd < 0) {
perror("open device leds");
exit(1);
}
ioctl(fd, on, led_no);
close(fd);
return 0;
}
将生成的.ko模块文件装载之后,运行测试文件就可以控制led的变化。
在命令行下执行:
#arm-linux-gcc –o leds-test leds-test.c
将生成可执行目标文件leds-test,通过网络ftp 或者优盘把它复制到开发板中,比如放在/home/plg 目录下
(注意:开发板缺省的文件系统已经有了led 测试程序,所以我们在此改名为leds-test),在开发板的命令行终端执行:
#/etc/rc.d/init.d/leds stop
该命令将停止led-player 对led 的控制,关于led-player,可以在用户手册中查看详细的说明。
使用leds-test 控制led 方法为:
#leds-test 3 0 ;关闭LED3
#leds-test 3 1 ;打开LED3
其中第一个参数为要控制的LED 序号,第二个参数代表关闭(0)或者打开(1)对应的LED。
如图