当前位置:首页 > 芯闻号 > 充电吧
[导读]  前言:使用eclipse开发嵌入式linux程序和pc linux程序几乎没有区别,并且使用eclipse图形界面的集成开发环境上手简单,方便学习,这里就教大家开发第一个嵌入式linux程序,程序

 

前言:使用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 
#include 
#include 
#include 
#include 
#include 



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%Xn",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%Xn",led);
			usleep(1000 * 100);	//100MS
		}

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




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



3.执行程序

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



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

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



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

以前都只是在网上搜的能用的例子,对一些参数不是很清楚,这次汇总。而且网络通信还是很常用的通信手段。

关键字: api c Linux socket

什么是Littelfuse setP™温度指示器?它有什么作用?2019年6月12日讯 - - Littelfuse, Inc. (NASDAQ: LFUS)今日宣布推出经过扩展的PolySwitch® setP™ 系列...

关键字: c littelfuse type USB 连接器

第三方代码的使用是企业能够快速高效建立新系统、新产品、新平台的关键因素,能大幅度缩短开发周期,减少人力和资金的投入。目前大部分第三方代码包含大量的开源代码,并且主要是以二进制代码或是源代码的方式

关键字: c 代码

作为初学者,我想记录一下我的学习状况,一是可以回头寻找自己的进步,二是希望我可以通过这种学习方式来指导未来想学的伙伴们。

关键字: c C语言 Linux

根据今年早些时候发布的2019年关于嵌入式市场研究的报告,虽然物联网、嵌入式视觉、机器学习和其他新兴技术的重要性日益提高,但C和C ++仍是嵌入式开发中占主导地位的编程语言。

关键字: c python 嵌入式 技术前沿 ++

单例模式 单例模式,可以说设计模式中最常应用的一种模式了,据说也是面试官最喜欢的题目。但是如果没有学过设计模式的人,可能不会想到要去应用单例模式,面对单例模式适用的情况,可能会优先考虑使用全局或者静

关键字: c 单例 qt单例模式

智能家居是在互联网影响之下物联化的体现。现在是智能家居产业最好的时代,用户需求明显,产品厂商极其活跃,供销两旺的势头越来越明显。但智能家居毕竟是一个新兴事物,加上5G、AIoT等新技术的加持,在市场定位、渠道建设、商业...

关键字: c to 智能家居 b

刚刚写的SPI驱动,想移植到LINUX上面用来读写SD卡 只测试了发送,没有测试接收. spi.c /***********************************************

关键字: c delay

1.gets()函数 #include int main(int argc, char *argv[]) { char buff[10]; memset(buff, 0, sizeof(buf

关键字: c Linux

1.准备工作   首先得安装好gcc工具链,以及开发环境,可以看看我的前面的几步。    还得编译好内核,一般开发板都带了,现在我还不知道配置内核,只能按照开发板默认的去编译,编译前需要先编译uboo

关键字: c
关闭
关闭