7.2.1 LED 测试程序
程序源代码说明:
驱动源代码所在目录 /opt/FriendlyARM/mini2440/linux-2.6.29/drivers/char
驱动程序名称 mini2440_leds.c
设备类型 misc
设备名 /dev/leds
测试程序源代码目录 /opt/FriendlyARM/mini2440/examples/leds
测试程序名称 led.c
测试程序可执行文件名称 led
说明:LED 驱动已经被编译到缺省内核中,因此不能再使用insmod 方式加载。
测试程序清单:
#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;
/* 检查led 控制的两个参数,如果没有参数输入则退出。*/
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);
}
/*打开/dev/leds 设备文件*/
fd = open("/dev/leds0", 0);
if (fd < 0) {
fd = open("/dev/leds", 0);
}
if (fd < 0) {
perror("open device leds");
exit(1);
}
/*通过系统调用ioctl 和输入的参数控制led*/
ioctl(fd, on, led_no);
/*关闭设备句柄*/
close(fd);
return 0;
}
你可以按照上面的 hello 程序的步骤手工编译出 led 可执行文件,然后下载到开发板运
行它。
我的疑问是:
上面红色部分的程序说明中的驱动程序mini2440_led.c文件和测试程序led.c有什么联系, LED工作时这些文件到底是怎么相互联系的,还有向开发板下裸机程序,只能用JTAG吗?别的办法怎么下? 能不能用USB?