完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1嵌入式Linux系统
嵌入式系统是软件和硬件的综合体。它是以应用为中心,以计算机技术为基础,软硬件可裁减,从而能够适应实际应用中对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。Linux具有强大的功能,很好地支持了各种现代编程技术,将Linux应用于嵌入式系统的开发有如下一些优点: 1) 内核完全开放,使得设计者可以自己设计和开发出真正的硬件实时系统和软件实时系统。 2)Linux本身具有一整套工具链,使用者可以较容易地自行建立嵌入式系统的开发环境和交叉编译及运行环境。 3) 强大的网络支持,可以利用Linux的网络协议栈将其开发成为嵌入式的TCP/IP网络协议栈。 2硬件平台的选择 2.1处理器的选择 设计者在选择处理器时要考虑的主要因素有: (1) 处理性能。处理器的性能取决于多个方面的因素,如时钟频率、内部寄存器的大小、指令是否对等处理所有的寄存器等。如果是面向高性能的应用设计,那么建议考虑某些新的处理器,其价格相对低廉,如IBM和Motorola Power PC。 (2) 技术指标。当前许多嵌入式处理器都集成了外围设备,采用这类CPU可以减少系统的体积,降低系统的开发成本。开发人员首先考虑的是,系统所要求的一些硬件能否无需过多的胶合逻辑(GL,Glue Logic)就可以连接到处理器上;其次是考虑该处理器的一些支持芯片,如DMA控制器、内存管理器、中断控制器、串行设备、时钟等的配套。 (3) 功耗。嵌入式微处理器最大并且增长最快的市场是手持设备、电子记事本、PDA、手机、GPS导航器、智能家电等消费类电子产品。这些产品中选购的微处理器,典型的特点是要求高性能、低功耗。 (4) 软件工具。仅有一个处理器,没有较好的软件开发工具的支持也是不行的,因此选择合适的软件开发工具对系统的实现会起到很好的作用。 (5) 内置调试工具。使用具有内置调试工具的处理器可以大大缩小调试周期,降低调试的难度。 (6) 供应商是否提供评估板。许多处理器供应商可以提供评估板来验证理论是否正确,决策是否得当。 2.2硬件选择的其他因素 (1)生产规模。打算做一套,多套,还是规模生产,如果生产规模比较大,可以自己设计和制备硬件,这样可以降低成本。反之,最好从第三方购买主板和I/O板卡。 (2) 市场目标。如果想使产品尽快发售,以获得竞争力,就要尽可能买成熟的硬件;反之,可以自己设计硬件,降低成本。 (3) 软件对硬件的依赖性。软件是否可以在硬件没有到位的时候并行设计或先行开发。 3软件平台的选择 嵌入式软件的编写和开发调试的主要流程为:代码编程、交叉编译、交叉链接、重定位、下载到目标板和调试等几个步骤,因此软件平台的选择也涉及到以下几个方面。 3.1操作系统的选择 (1) 操作系统选择应考虑的因素 硬件方案确定之后,操作系统的选择就相对轻松了。硬件的不同,会影响操作系统的选择。低端无MMU(Memory Management Unit,存储器管理单元)的CPU,要使用uClinux 操作系统;而相对高端的硬件,则可以用普通的嵌入式 Linux 操作系统。uClinux 和普通的 Linux 有各自的优势和缺点。可用于嵌入式系统软件开发的操作系统很多,但关键是如何选择一个适合开发项目的操作系统。笔者认为应该从以下几点进行考虑。 ① 操作系统提供的开发工具:有些实时操作系统(RTOS)只支持该系统供应商的开发工具,因此还必须向操作系统供应商获取编译器、调试器等;而有些操作系统使用广泛,且有第三方工具可用,因此选择余地较大。 ② 操作系统向硬件接口移植的难度:操作系统到硬件的移植是一个重要的问题,是关系到整个系统能否按期完工的一个关键因素。因此,要选择可移植性程度高的操作系统,避免操作系统难以向硬件移植而带来的种种困难,加速系统的开发进度。 ③ 操作系统的内存要求:均衡考虑是否需要额外花钱去购买RAM或EEPROM来迎合操作系统对内存的较大要求。 ④ 开发人员是否熟悉此操作系统及其提供的API。 ⑤ 操作系统是否提供硬件的驱动程序。 ⑥ 操作系统的可剪裁性。有些操作系统具有较强的可剪裁性,如嵌入式Linux、Tornado/VxWorks等等。 ⑦ 操作系统的实时性能。 (2) 几类嵌入式Linux系统的比较 嵌入式Linux系统方面的产品主要分为三类。第一类是专门为Linux的嵌入式应用而做的,如何让Linux更小、更容易嵌入到体积要求和功能、性能要求更高的硬件中去,是他们的产品开发方向。第二类是专门为Linux的实时特性设计的产品,将Linux开发成实时系统尤其是硬实时系统,应用于一些关键的控制场合。第三类的产品是将实时性和嵌入式方案结合起来的方案。因此要根据自己的嵌入式要求和实时性要求,选择适合自己的嵌入式Linux;同时,和选择硬件的原则一样,如果可能,尽量选择使用普通的嵌入式 Linux 系统。 3.2编程语言的选择 编程语言的选择主要考虑以下因素。 (1) 通用性:不同种类的微处理器都有自己专用的汇编语言,这就为系统开发者设置了一个巨大的障碍,使得系统编程更加困难,软件重用无法实现。而高级语言一般和具体机器的硬件结构联系较少,多数微处理器都有良好的支持,通用性较好。 (2) 可移植性程度:汇编语言和具体的微处理器密切相关,为某个微处理器设计的程序不能直接移植到另一个不同种类的微处理器上使用,移植性差;而高级语言对所有微处理器都是通用的,程序可以在不同的微处理器上运行,可移植性较好。 (3) 执行效率:一般来说,越是高级的语言,其编译器和开销就越大,应用程序也就越大、越慢;但单纯依靠低级语言,如汇编语言来进行应用程序的开发,带来的问题是编程复杂、开发周期长。因此,存在一个开发时间和运行性能间的权衡问题。 (4) 可维护性:低级语言如汇编语言,可维护性不高。高级语言程序往往是模块化设计,各个模块之间的接口是固定的。当系统出现问题时,可以很快地将问题定位到某个模块内,并尽快解决。另外,模块化设计也便于系统功能的扩充和升级。 在嵌入式系统开发过程中使用的语言种类很多,比较广泛应用的高级语言有Ada、C/C++、Modula-2和Java等。Ada语言定义严格,易读易懂,有较丰富的库程序支持,目前在国防、航空、航天等相关领域应用比较广泛。C语言具有广泛的库程序支持,是目前在嵌入式系统中应用最广泛的编程语言,在将来很长一段时间内仍占重要地位。C++是一种面向对象的编程语言,目前在嵌入式系统设计中也得到了广泛的应用。Modula-2定义清晰,支持丰富,具有较好的模块化结构,在教学科研方面有较广泛的应用。Java语言相对年轻,但有很强的跨平台特性,目前发展势头较为强劲。 3.3集成开发环境考虑的因素 (1) 系统调试器的功能。系统调试特别是远程调试是一个重要的功能。 (2) 支持库函数。许多开发系统提供大量实用的库函数和模板代码,如大家比较熟悉的C++编译器就带有标准的模板库。与选择硬件和操作系统的原则一样:除非必要,尽量采用标准的glibc。 (3) 编译器开发商是否持续升级编译器。 (4) 连接程序是否支持所有的文件格式和符号格式。 3.4硬件调试工具的选择 好的软件调试程序可以有效地发现BUG,但是如果再选择一个好的硬件调试就会达到事半功倍的效果。常用的硬件调试工具有以下几种: (1) 实时在线仿真器(ICE,In-Circuit Emulator)。可以对程序进行单步运行、断点、反汇编、内存检查、源程序级等的调试。 (2) 逻辑分析仪。最常用于硬件调试,也可用于软件调试。它是一种无源器件,主要用于监视系统总线的事件。 (3)ROM仿真器。可插入ROM插座中的器件,用于仿真ROM芯片,从而避免了每次修改程序后直接烧结的麻烦。 3.5软件组件的选择 有些软件组件是免费的,有些软件组件是授权的。授权软件组件的费用一般都很高,但大都经过严格的测试,可靠性高,调试时间短。现在也有一些免费的自由软件组件,它们的性能、可靠性也很好。因此开发人员在选择的时候要加以权衡,确定哪种方案更好。 4展望 嵌入式技术的应用越来越广泛,有无限大的应用领域,可谓无所不在、无处不在、多种途径、多种选择。Linux在嵌入式系统中具有强大的生命力和利用价值,很多公司和大学都在应用中不断地研究和开发。可以预见,ARM与Linux在未来会更加壮大,在嵌入式产品市场上占有越来越大的份额。 源地址360医学网:www.yxqk360.com 本帖被以下淘专辑推荐:
|
|
相关推荐 |
|
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 12:27 , Processed in 0.581456 second(s), Total 57, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号