欢迎来到天天文库
浏览记录
ID:9541395
大小:54.00 KB
页数:4页
时间:2018-05-03
《嵌入式系统(arm)开发平台选型》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、嵌入式系统(ARM)开发平台选型 摘要:本文从实际应用的角度出发,重点对Linux嵌入式系统开发中硬件平台选型问题进行论述。 关键词:嵌入式系统;ARM;Linux操作平台 1嵌入式Linux系统 嵌入式系统是软件和硬件的综合体。它是以应用为中心,以计算机技术为基础,软硬件可裁减,从而能够适应实际应用中对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。Linux具有强大的功能,很好地支持了各种现代编程技术,将Linux应用于嵌入式系统的开发有如下一些优点: 1)内核完全开放,使得设计者可
2、以自己设计和开发出真正的硬件实时系统和软件实时系统。 2)Linux本身具有一整套工具链,使用者可以较容易地自行建立嵌入式系统的开发环境和交叉编译及运行环境。 3)强大的网络支持,可以利用Linux的网络协议栈将其开发成为嵌入式的TCP/IP网络协议栈。 2硬件平台的选择 2.1处理器的选择 设计者在选择处理器时要考虑的主要因素有: (1)处理性能。处理器的性能取决于多个方面的因素,如时钟频率、内部寄存器的大小、指令是否对等处理所有的寄存器等。如果是面向高性能的应用设计,那么建议考虑某些新的处理器,
3、其价格相对低廉,如IBM和MotorolaPooryManagementUnit,存储器管理单元)的CPU,要使用uClinux操作系统;而相对高端的硬件,则可以用普通的嵌入式Linux操作系统。uClinux和普通的Linux有各自的优势和缺点。可用于嵌入式系统软件开发的操作系统很多,但关键是如何选择一个适合开发项目的操作系统。笔者认为应该从以下几点进行考虑。 ①操作系统提供的开发工具:有些实时操作系统(RTOS)只支持该系统供应商的开发工具,因此还必须向操作系统供应商获取编译器、调试器等;而有些操作系统使用广泛,
4、且有第三方工具可用,因此选择余地较大。 ②操作系统向硬件接口移植的难度:操作系统到硬件的移植是一个重要的问题,是关系到整个系统能否按期完工的一个关键因素。因此,要选择可移植性程度高的操作系统,避免操作系统难以向硬件移植而带来的种种困难,加速系统的开发进度。 ③操作系统的内存要求:均衡考虑是否需要额外花钱去购买RAM或EEPROM来迎合操作系统对内存的较大要求。 ④开发人员是否熟悉此操作系统及其提供的API。 ⑤操作系统是否提供硬件的驱动程序。 ⑥操作系统的可剪裁性。有些操作系统具有较强的可剪裁性,如嵌入式Li
5、nux、Tornado/VxWorks等等。 ⑦操作系统的实时性能。 (2)几类嵌入式Linux系统的比较 嵌入式Linux系统方面的产品主要分为三类。第一类是专门为Linux的嵌入式应用而做的,如何让Linux更小、更容易嵌入到体积要求和功能、性能要求更高的硬件中去,是他们的产品开发方向。第二类是专门为Linux的实时特性设计的产品,将Linux开发成实时系统尤其是硬实时系统,应用于一些关键的控制场合。第三类的产品是将实时性和嵌入式方案结合起来的方案。因此要根据自己的嵌入式要求和实时性要求,选择适合自己的嵌入式
6、Linux;同时,和选择硬件的原则一样,如果可能,尽量选择使用普通的嵌入式Linux系统。 3.2编程语言的选择 编程语言的选择主要考虑以下因素。 (1)通用性:不同种类的微处理器都有自己专用的汇编语言,这就为系统开发者设置了一个巨大的障碍,使得系统编程更加困难,软件重用无法实现。而高级语言一般和具体机器的硬件结构联系较少,多数微处理器都有良好的支持,通用性较好。 (2)可移植性程度:汇编语言和具体的微处理器密切相关,为某个微处理器设计的程序不能直接移植到另一个不同种类的微处理器上使用,移植性差;而高级语言对所
7、有微处理器都是通用的,程序可以在不同的微处理器上运行,可移植性较好。 (3)执行效率:一般来说,越是高级的语言,其编译器和开销就越大,应用程序也就越大、越慢;但单纯依靠低级语言,如汇编语言来进行应用程序的开发,带来的问题是编程复杂、开发周期长。因此,存在一个开发时间和运行性能间的权衡问题。 (4)可维护性:低级语言如汇编语言,可维护性不高。高级语言程序往往是模块化设计,各个模块之间的接口是固定的。当系统出现问题时,可以很快地将问题定位到某个模块内,并尽快解决。另外,模块化设计也便于系统功能的扩充和升级。 在嵌入式
8、系统开发过程中使用的语言种类很多,比较广泛应用的高级语言有Ada、C/C++、Modula-2和Java等。Ada语言定义严格,易读易懂,有较丰富的库程序支持,目前在国防、航空、航天等相关领域应用比较广泛。C语言具有广泛的库程序支持,是目前在嵌入式系统中应用最广泛的编程语言,在将来很长一段时间内仍占重要地位。C++是一种面向对象的
此文档下载收益归作者所有