APP下载

基于ARM的嵌入式Linux软件开发平台的搭建

2016-10-31吴捷

电脑知识与技术 2016年22期
关键词:嵌入式系统

吴捷

摘要:嵌入式软件开发是当前热门技术,而构建嵌入式软件开发环境是进行嵌入式软件开发的基础。该文对如何搭建基于ARM的嵌入式Linux软件开发平台进行了探究。根据软件开发的一般流程,从交叉编译环境的建立,到TFTP和NFS的配置,都进行了详细的论述,并通过实验证明了平台的可用性。

关键词:嵌入式系统;ARM;Linux;交叉编译

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)22-0227-02

Abstract:Embedded software development is the focus of current research,construction of the embedded software development environment is the basis of embedded software development. This paper research on how to build embedded Linux software development platform based on ARM. According to the mainline of software development process,from the establishment of cross-compilation environment,to TFTP and NFS development environment,all are discussed in detail, and the availability of the platform was demonstrated by the experimental results.

Key words:embedded system; ARM; Linux; cross-compilation

嵌入式设备的使用日益广泛,其中操作系统的选用成为关注的焦点。嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统(包括硬、软件系统)极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面等。与通用操作系统相比较,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。目前主流的嵌入式操作系统有Windows CE、VxWorks、嵌入式Linux等。其中,Linux成为极有吸引力的一种选择,它是个和Unix相似、以核心为基础的、完全内存保护、多任务多进程的操作系统。支持广泛的计算机硬件,程式源码全部公开,任何人可以修改并在GNU通用公共许可证(GNU General Public License)下发行。由于Linux桌面系统在实际使用中熟悉的人较少,开发者在进行嵌入式Linux软件开发和研究的过程中,往往面临搭建开发平台的困难[1]。本文对基于ARM的嵌入式Linux开发平台的搭建进行了研究,提供了一种可靠性较高的方法。

1 嵌入式开发软件平台搭建

嵌入式软件开发一般遵循“宿主机一目标板”的开发模式。其中核心内容主要是宿主机交叉编译环境[2]以及TFTP和NFS环境的搭建。在本文给出的实验示例中,宿主机上安装的是目前比较流行的RHEL 6版本。

1.1 宿主机交叉编译环境的搭建

因为成本原因,嵌入式系统的资源往往是有限的,因此直接在嵌入式系统的硬件平台上编写软件比较困难。这时候就需要交叉编译。所谓交叉编译就是在某个主机平台上(比如PC上)用交叉编译器编译出可在其他平台上(比如ARM上)运行的代码的过程。嵌入式系统交叉编译环境如图1所示。

下面就介绍如何搭建宿主机交叉编译环境。本文在测试时使用的交叉编译器版本为arm-linux-gcc-3.4.1.tgz,硬件方面使用的是上海双实科技提供的基于S3C2440的开发板。

安装交叉编译器arm-linux-gcc-3.4.1.tgz步骤如下:(通过U盘拷贝到系统中,并放置根目录下)

cd /

tar zxvf arm-linux-gcc-3.4.1.tgz

vi /root/.bashrc

添加下面一句

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

source /root/.bashrc //使文件生效

arm-linux-gcc –v //查看交叉编译器版本号,应该显示为3.4.1

1.2 TFTP的搭建

TFTP是一种传输文件的简单协议, 它没有FTP协议那么多特征, 不支持目录列表及用户认证[3],但是实现快捷,被广泛应用于嵌入式开发领域。TFTP也是基于传统的C/S模式进行工作, TFTP开发环境的构建分为宿主机端的tftp-server支持以及目标板的tftp-client支持。

1.2.1 构建宿主机tftp开发环境

1) 首先利用配置好的本地yum源安装tftp服务软件包

mount /dev/cdrom /media

yum install tftp*

2) 修改配置文件

在RHEL 6系统中TFTP服务默认情况下是禁用的,所以要修改/etc/xinetd.d/tftp文件来开启服务。操作如下:

vi /etc/xinetd.d/tftp

将配置选项disable= yes改为disable= no,保存退出

3)重新启动tftp-server

service xinetd restart

1.2.2 构建目标板tftp开发环境

一般来说,目标板都能够支持tftp-client,所以嵌入式目标板tftp环境一般就不需要再配置了。在目标板可以通过类似命令tftp –r a.c –g 211.65.180.1下载文件。

1.3 NFS开发环境的搭建

tftp服务只在需要下载或传输文件至开发板时使用。在应用程序开发环节,通常都要

搭建好NFS环境[4]。NFS是系统间进行文件共享的一种网络协议,在NFS的应用结构中有服务器和客户机两种角色,NFS客户端通过挂载NFS文件系统的方式访问NFS服务器中输出的共享目录 。因此,NFS方式比ftp方式有着更高的执行效率。

1.3.1 宿主机NFS开发环境的建立

1)安装NFS服务器

mount /dev/cdrom /media

yum install nfs-utils

2)关闭服务器端防火墙

service iptables stop

3)配置NFS服务器

在宿主机端以root的身份登录。使用vi编辑器编辑/etc/exports文件,该文件中默认内容为空,可以添加如下内容:

/home/share 211.65.180.1 (rw,sync,no_root_squash)

添加的内容表示允许IP为211.65.180.1的计算机以读写的权限来访问共享目录/home/share。

4)启动RPC服务(在RHEL6中用rpcbind服务代替之前的portmap服务)

service rpcbind start

5)启动NFS服务器

service nfs start

1.3.2 目标机NFS开发环境的建立

目标板如果不支持NFS,则需要重新编译内核,添加相应的选项。

1)配置内核支持NFS客户端

将内核源代码拷贝到相关目录下,然后输入命令make menuconfig,在出现的图形界面中选择Load an Alternate Configuration File菜单载入配置文件,添加内核对NFS的支持,然后保存退出,用命令make uImage编译内核,将生成的uImage重新下载到目标板启动即可。

2)目标板对NFS共享目录的挂栽

mount -t nfs –o nolock 192.168.0.10:/tftpboot /tmp

2 结束语

本文对构建基于ARM的嵌入式Linux软件开发环境进行了探究。作者在宿主机上安装了内核较新的Linux企业版本RHEL 6,着重研究了交叉编译环境的建立,TFTP和NFS的配置,从实验结果来看,提供了一种可靠性较高的方法。

参考文献:

[1] 苟军年. ARM-Linux嵌入式软件开发平台的搭建. 计算机时代[J]. 2010(11): 53-55.

[2] 张欢庆, 高丽, 宋承祥. 基于ARM的嵌入式Linux交叉编译环境的研究与实现[J]. 计算机与数字工程, 2012, 40(2): 151-153.

[3] 李怀刚, 邱建新. 网络安装Linux的技术原理分析及实现[J]. 计算机应用与软件, 2006, 23(9): 110-112.

[4] 叶军, 朱华生. 嵌入式Linux NFS方式下应用程序的实现[J]. 微计算机信息, 2007, 23(8).

猜你喜欢

嵌入式系统
嵌入式系统课程“中断、异常与事件”教学实践及启示
面向实践创新人才培养的嵌入式系统教学研究