mini2440上程序不能控制led的解决办法

来源:互联网 发布:帝国cms产品展示模板 编辑:程序博客网 时间:2024/05/16 15:03

(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章节,如下图