Chinaunix首页 | 论坛 | 博客
  • 博客访问: 91167
  • 博文数量: 59
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 260
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-09 17:30
文章分类

全部博文(59)

文章存档

2016年(5)

2015年(23)

2014年(30)

2013年(1)

我的朋友

分类: 嵌入式

2014-11-25 09:47:27

嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤。一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便。如有错误之处,谢请指正。

一、开发工具

  • 虚拟机Linux:Fedora 9
  • 交叉编译工具:arm-linux-gcc-3.4.1.tar.bz2
  • 集成开发工具:Eclipse(Linux安装包中自带的,安装Linux时选中安装)
二、安装ARM交叉编译器

    1. 安装。其实很简单,就是将下载的arm-linux-gcc-3.4.1.tar.bz2解压到Linux根目录即可(因为解压后已经包含了/usr/local目录,所以要解压到根目录),如下命令:

tar -jxvf arm-linux-gcc-3.4.1.tar.bz2 -C /

解压后的目录如下图:

解压后的目录/usr/local/arm/3.4.1/

    2. 设置环境变量。就是把交叉编译器的路径设置到系统环境变量里面去。

echo $PATH

查看现有的环境变量,显示如下图:

如果你只想临时添加交叉编译器的环境变量(注:临时添加的系统重启或注销后又没有了),只需在命令行输入如下命令:

export PATH=$PATH:/usr/local/arm/3.4.1/bin

添加后的环境变量如下图:(多了一个/usr/local/arm/3.4.1/bin

如果你想这个环境变量永久的添加到系统的环境变量中,则你只需把这个命令添加到/root/.bashrc文件的最后一行即可(这个文件是隐藏文件,你要在文件浏览器中单击查看菜单,勾选显示隐藏文件才能看到)

    3. 测试建立的交叉编译环境。新建一个c程序,文件名:test.c, 如下:

#include <stdio.h>

int main(void)
{
    printf("Hellow world!\n");
    return 0;
}

进行交叉编译,如下:

arm-linux-gcc -o test test.c

将交叉编译好的目标文件test下载到ARM开发板中并运行,如下:

./test

 
输出结果为:
Hellow world!

三、用集成开发工具Eclipse来开发嵌入式应用程序

双击Eclipse图标启动Eclipse

 

设置Eclipse的工作空间,就是选个目录,单击OK

 

启动后的主界面

 

开始新建一个应用程序工程

 

选择新建一个C工程,单击Next

 

给工程取个名字,这里我就叫test_app;然后选择工程类型,我选择了个Hellow world C工程模版,单击Next

 

填写作者、版权等信息,单击Next

 

没什么选的,点击Finish

 

单击Yes

 

新建好的项目工程

 

展开左边的源代码目录,双击打开主函数。这里只是输出一句"Hello World!!!",你可以做一些其他复杂的应用

 

单击Project菜单,去掉Build Automatically的勾选,因为勾选的话,每次修改一个地方工程都会自动进行编译

 

打开工程的属性对话框进行编译选项的设置

 

我们的应用程序最终要到嵌入式arm上运行,这里就要把gcc改成arm-linux-gcc编译器,当然前提是你要在你的开发主机上先安装arm-linux-gcc

 

C连接器也要改成arm-linux-gcc

 

这里的Libraries是设置你的应用程序中用到的库文件,比如应用程序中用到了线程类,则这里在上面添加pthread这个库,下面就添加这个库的路径。如果应用程序没用到任何库文件就不用管了

 

选中左侧的工程名,右键,在弹出的菜单中选择Build Project编译工程

 

编译好后的工程,目标文件在Debug目录下

四、结束语

    建立交叉编译环境是开发嵌入式程序的第一步,编译器版本也有很多,这里就介绍用的较多的一种。而Eclipse则是本人认为开发嵌入式应用程序最为方便的集成开发工具,他不仅让整个工程清晰可见,更重要的是他不需要你去为整个工程编写复杂的Makefile文件,他会为你自动生成Makefile。

阅读(462) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~