日期:2014-05-16  浏览次数:20688 次

【嵌入式linux】(第六步):使用eclipse集成开发环境开发第一个嵌入式Linux程序,并测试LED驱动

 

前言:使用eclipse开发嵌入式linux程序和pc linux程序几乎没有区别,并且使用eclipse图形界面的集成开发环境上手简单,方便学习,这里就教大家开发第一个嵌入式linux程序,程序功能就是测试上次写好的LED驱动程序。


1.新建工程


输入工程名称,选择可执行程序,选择cross GCC,下一步,选择填写arm-linux-gcc的路径,这一步按照自己的实际情况进行填写



点击完成即可


2.输入代码并编译



代码很简单的,只是一个实例

/****************************************************************************************************************
*文件名		:	main.c
*主要功能		:	LED测试
*作者       	:	异灵元(cp1300@139.com)
*创建时间		:	2012下午11:52:59
*最后修改时间	:	2012下午11:52:59
*说明		:	使用OK6410开发板,测试自己写的LED驱动
****************************************************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <unistd.h>



int main(void)
{
	int fd;
	int retval;
	unsigned char led;

	//LED测试
	printf("LED test...\n");
	fd = open("/dev/OK6410_LED",O_RDWR);		//open led,注意:是驱动模块名,不是驱动文件名
	if(fd == -1)
	{
		printf("open led error!\n");
		exit(-1);
	}
	else
	{
		printf("open led ok!\n");
	}
	while(1)
	{
		for(retval = 0;retval < 4;retval ++)
		{
			led = 1 << retval;
			led = ~led;
			write(fd,&led,sizeof((unsigned char)1));
			//read(fd,&led,sizeof((unsigned char)1));
			//printf("LED = 0x%X\n",led);
			usleep(1000 * 100);	//100MS
		}

		for(retval = 2;retval > 0;retval --)
		{
			led = 1 << retval;
			led = ~led;
			write(fd,&led,sizeof((unsigned char)1));
			//read(fd,&led,sizeof((unsigned char)1));
			//printf("LED = 0x%X\n",led);
			usleep(1000 * 100);	//100MS
		}

	}
	close(fd);
	exit(0);
}




编写完代码后编译,一般先保存,设置了编译前自动保存只要按下 Ctrl + B 即可,编译完成后会生成相关的可执行程序,但是这个程序只能在ARM LINUX上执行,不能在PC上面执行。



3.执行程序

将程序复制到开发板执行,如果挂载了NFS就可以直接运行了,运行结果如下,当然还可以看到开发板的灯在来回跑动。。。



有的时候程序无法运行,需要添加可执行属性

 执行:chmod +x xxxx      xxxx即为编译好的可执行程序名称。