基于嵌入式Linux系统的应用程序开发

基于嵌入式Linux系统的应用程序开发


2024年5月19日发(作者:)

基于嵌入式Linux系统的应用程序开发

嵌入式系统和Linux的有机结合,成为后Pc时代计算机最普遍的应用形式。

由于嵌入式Linux具有天生秉承的优势,有越来越多的程序员投身于嵌入式linux

系统应用程序的开发,本文结合开发实例介绍了在嵌入式linux系统上开发应用程

序的过程。

标签:嵌入式系统inux 软件开发

嵌入式Linux由于代码开放性以及强大的网络功能,在中低端的嵌入式网络

设备中应用起来,比起PSOS+,VxWorks等专用系统有许多优势,Linux甚至还支持

蓝牙技术,这使得越来越多的企业和科研机构已经把目光转向了嵌入式Linux的

开发和应用上。以下通过实例来介绍基于嵌入式Linux的应用软件的开发过程:

一、宿主机配置

绝大多数的linux软件开发都是以native方式进行的,即本机(Host)开发、调

试、本机运行的方式。这种方式通常不适合嵌入式系统软件开发。通常的嵌入式

系统的软件开发采用采用主一从模式。交叉编译调试环境建立在宿主机上,对应

的开发板叫做目标板,通过串行口或以太网口,使目标板和宿主机相连。宿主机是

INTEL处理器,而目标板上,则是ARM、Motorola PowerPC、ColdFire等等,GNU

编译器能提供这样的功能,在编译编译器时可以选择开发所需的宿主机和目标机

从而建立开发环境,所以宿主机是必不可少的。

笔者建议宿主机采用REDHAT9.0,当然REDHAT7.2/7.3的系统也都是可以用

的,但鉴于市面上目前能买到的都是REDHAT9.0,所以建议采用REDHAT9.0,安装

过程可查阅相关手册。

宿主机配置中一个常见的问题就是NFS的配置,这里介绍一种较为直接简单

的方法:首先在REDHAT LINUX PC机上执行setup,弹出菜单界面后,选中:System

services,回车进入系统服务选项菜单,在其中选中[*],然后退出setup界面返回到命

令提示符下。

vim /etc/exports

将这个默认的空文件修改为只有如下一行内容:

/(rw)

然后保存退出(:wq)。然后执行如下命令:

/etc/re.d/init.d/afs re~tarl

Shutting down NFS mountd:[0K]

Shutting down NFS daemon:[0K]

Shutting down NFS quotas:[0K]

Shutting down NFS services:[0K]

Starting NFS servicca:[0K]

Starting NFS quotas:[0K]

Starting NFS daemon:[0K]

Starting NFS mountd:[0K]

注意,这种方法有个弊端,就是NFS不是每次都自动启动的,即无法像

linuxconf命令那样设置成Automatic启动方式,所以每次重启都要执行一下:

/etc/re.d/init.d/nfa reatarl

配置完成后,可用如下办法简单测试一下NFS是否配置好了,在宿主机上自己

mount自己,看是否成功就可以判断NFS是否配好了。例如在宿主机/目录下执行:

mount 192.168.0.2:/ /rant

然后到/mnt/目录下看是否可以列出/目录下的所有文件和目录,可以则说明

mount成功,NFS配置生效。

二、应用软件开发模式

嵌入式Linux应用程序开发主要有两种模式。

(1)先在宿主机上调试通过后,再移植到目标板上。这种方法需要跨越嵌入式

系统开发中的仿真工具(ICE)的障碍,移植工作相对较复杂,在此不作阐述,请查相

关书籍。

(2)直接在目标板上开发,这是一种通用的开发模式。采用这种方式时将宿主

机与目标板通过串口或以太网口连接,在宿主机上运行minicom作为目标板的显

示终端,mount上宿主机硬盘直接在目标板上调试应用程序。目标板上程序的调试

有两种方法。一种是程序的执行信息通过minicom来进行显示。这是最常用的一

种调试手段。另一种是通过log记录文件。例如使用syslog将应用程序运行过程

中间信息全部记录 /var/log/sys.1og下。

三、应用软件开发实例

这里用一个简单的程序来说明如何进行应用程序的编写和调试。首先宿主机

上编写应用程序(这里选用hello.c程序)并且编译通过,makefile文件的编写如下:

EXEC=hello

0BJS= hello.o

FLTFLAGS= - s 8 192

ALL:S(EXEC)

S(EXEC):S(OBJS)

S(LD)S(LDFLAGS)- 0 S@.elfS(OBJS)S(LDLIBS)

S(CONVERT)cp S(EXEC)../../romfs/bin

Cp-f hel1o /

clean:

-rm-fS(EXEC)*.Elf*.gbd*.o

按照上面提到的第二种模式的开发流程,启动minicom作为目标板的仿真终

端,在minicom下运行如下命令:

mount 192.168.0.2:/ /rant

mount宿主机上存放该程序的目录,然后在minicom下执行:

cd/mnt

/hello

运行结果显示“Hello,World”,如果有问题可以切换去编辑编译,再重新执行重

新修改后的新程序。这样反复调试、更改、编译再调试,而不再烧写板子,直到应

用程序达到要求为止。最后是调用烧写程序,将最终确定的烧写到板子

上,则应用程序就出现在板子上了。

四、结论

本文对如何进行基于嵌入式Linux系统应用程序的开发做了详细的说明,使

读者通过简单的学习就能迅速掌握软件开发模式,以便今后进一步深入应用程序

的开发,也希望本文能激起您在嵌入式Linux系统上开发应用程序的兴趣。

参考文献:

[1] Scott Maxwel1:Linux内棱源代码分析[M].北京:机械工业出版社,2000

[2]王学龙:嵌入式Linux系统设计与应用[M].北京:清华大学出版社,2001

[3]万加富等:网络监控系统原理与应用[M].北京:机械工业出版社,2000

[4]邢国良等:基于LinUX的实时操作系统的分析与研究[J].小型徽型计算机

系统,2001,22(8):1018—1021


发布者:admin,转转请注明出处:http://www.yc00.com/news/1716049414a2712032.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信