(1)在学习mini2440的过程中,开始写了一个控制led灯的程序app-led.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/leds", 0);
if (fd < 0) {
perror("open device leds");
exit(1);
}
ioctl(fd, on, led_no);
close(fd);
return 0;
}
然后编译#arm-linux-gcc -o app-led app-led.c
下载到开发板运行程序的时候,4个led灯还是流水灯的跑法,并没有达到控制某个灯的目的。
通过查看mini2440用户手册-20110421.pdf的2.5.6章节,发现了如下图这段话。
之后程序就能成长工作了。
(2)关于这个的进一步描述,在mini2440——linux移植开发实战指南.pdf的3.22章节,如下图