嵌入式linux 系统及其应用前景摘要主要分析嵌入式linux.pdf

上传人:asd****56 文档编号:70341917 上传时间:2023-01-19 格式:PDF 页数:9 大小:241.34KB
返回 下载 相关 举报
嵌入式linux 系统及其应用前景摘要主要分析嵌入式linux.pdf_第1页
第1页 / 共9页
嵌入式linux 系统及其应用前景摘要主要分析嵌入式linux.pdf_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《嵌入式linux 系统及其应用前景摘要主要分析嵌入式linux.pdf》由会员分享,可在线阅读,更多相关《嵌入式linux 系统及其应用前景摘要主要分析嵌入式linux.pdf(9页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、嵌入式嵌入式 Linux 系统及其应用前景 系统及其应用前景 摘要:摘要:主要分析嵌入式 Linux 系统应用开发的特点;概述其开发过程和所面临的挑战;阐述嵌入式 Linux 的发展和应用前景。关键词:关键词:嵌入式 Linux,操作系统,嵌入式应用软件。嵌入式硬件平台 引 言引 言 近年来,随着计算技术、通信技术的飞速发展,特别是互联网的迅速普及和 3C(计算机、通信、消费电子)合一的加速,微型化和专业化成为发展的新趋势,嵌入式产品成为信息产业的主流。Linux 从 1991 年问世到现在,短短的十几年时间已经发展成为功能强大、设计完善的操作系统之一;可运行在 X86、Alpha、Sparc

2、、MIPS、PPC、Motorola、NEC、ARM 等多种硬件平台,而且开放源代码,可以定制;可与各种传统的商业操作系统分庭抗争。越来越多的企业和研发机构都转向嵌入式 Linux 的开发和研究上,在新兴的嵌入式操作系统领域内也获得了飞速发展。1 嵌入式 Linux 的特点1 嵌入式 Linux 的特点 嵌入式系统是以应用为中心,以计算机为基础,软硬件可裁剪,适用于系统对功能、可靠性、成本、功耗严格要求的专用计算机系统,系统结构见图 1。实时性是嵌入式系统的基本要求,其次,还要求代码小,速度快,可靠性高。嵌入式 Linux(Embedded Linux)是指对 Linux经过裁剪小型化后,可固

3、化在存储器或单片机中,应用于特定嵌入式场合的专用 Linux 操作系统。嵌入式 Linux 的开发和研究已经成为目前操作系统领域的一个热点。与其它嵌入式操作系统相比(详见表 1),Linux 的特点如下。表 1 专用嵌入式实时操作系统与嵌入式 Linux 的比较表 1 专用嵌入式实时操作系统与嵌入式 Linux 的比较 专用嵌入式实时操作系统 嵌入式 Linux 操作系统 版权费 每生产一件产品需交纳一份版权费 免费 购买费用 数十万元(RMB)免费 技术支持 由开发商独家提供有限的技术支持 全世界的自由软件开发者提供支持 网络特性 另加数十万元(RMB)购买 免费且性能优异 软件移值 难(因

4、为是封闭系统)易,代码开放(有许多应用软件支持)应用产品开发周期 长,因为可参考的代码有限 短,新产品上市迅速,因为有许多公开的代码可以参考和移植 实时性能 好 须改进,可用 PT_Linux 等模块弥补 稳定性 较好 较好,但在高性能系统中须改进 第一,Linux 系统是层次结构且内核完全开放。Linux 是由很多体积小且性能高的微内核系统组成。在内核代码完全开放的前提下,不同领域和不同层次的用户可以根据自己的应用需要方便地对内核进行改造,低成本地设计和开发出满足自己需要的嵌入式系统。第二,强大的网络支持功能。Linux 诞生于因特网时代并具有 Unix 的特性,保证了它支持所有标准因特网协

5、议,并且可以利用 Linux 的网络协议栈将其开发成为嵌入式的 TCP/IP 网络协议栈。此外,Linux 还支持 ext2、fat16、fat32、romfs 等文件系统,为开发嵌入式系统应用打下了很好的基础。第三,Linux 具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,可以跨越嵌入式系统开发中仿真工具的障碍。Linux 也符合 IEEE POSIX.1 标准,使应用程序具有较好的可移植性。传统的嵌入式开发的程序调试和调试工具是用在线仿真器(ICE)实现的。它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,完成监视和调试程序;但一般价格比较昂贵,只适合做非常

6、底层的调试。使用嵌入式 Linux,一旦软硬件能够支持正常的串口功能,即使不用仿真器,也可以很好地进行开发和调试工作,从而节省一笔不小的开发费用。嵌入式 Linux 为开发者提供了一套完整的工具链(tool chain)。它利用 GNU 的 gcc 做编译器,用 gdb、kgdb、xgdb 做调试工具,能够很方便地实现从操作系统到应用软件各个级别的调试。第四,Linux 具有广泛的硬件支持特性。无论是 RISC 还是 CISC、32 位还是 64 位等各种处理器,Linux 都能运行。Linux 通常使用的微处理器是 Intel X86 芯片家族,但它同样能运行于 Motorola 公司的 6

7、8K 系列 CPU 和 IBM、Apple、Motorola 公司的 PowerPC CPU 以及 Intel公司的 StrongARM CPU 等处理器。Linux 支持各种主流硬件设备和最新硬件技术,甚至可以在没有存储管理单元(MMU)的处理器上运行。这意味着嵌入式 Linux 将具有更广泛的应用前景。2 Linux 嵌入式系统开发平台2 Linux 嵌入式系统开发平台 2.1 系统软件操作平台 操作系统是一种在计算机上运行的软件。它的主要任务是管理计算机上的系统资源,为用户提供使用计算机及其外部设备的接口。它存在的目的是为了管理所有硬件资源,并且提供应用软件一个合适的操作环境。嵌入式系统

8、由于硬件的限制,通常只具有极稀少的硬件资源,如主频较低的 CPU、较小的内存、小容量的固态电子盘芯片 DoC(Disk on Chip)或 DoM(Disk on Module)替代磁盘等。在使用电池的系统中,它还要实现低功耗,延长电池使用时间的功能。Linux 作为嵌入式操作系统是完全可行的。因为 Linux 提供了完成嵌入功能的基本内核和所需要的所有用户界面,能处理嵌入式任务和用户界面。将 Linux 看作是连续的统一体,从一个具有内存管理、任务切换和时间服务及其它分拆的微内核到完整的服务器,支持所有的文件系统和网络服务。Linux 作为嵌入式系统,是一个带有很多优势的新成员。它对许多 C

9、PU和硬件平台都是易移植、稳定、功能强大、易于开发的。嵌入式 Linux 系统需要下面三个基本元素:系统引导工具(用于机器加电后的系统定位引导)、Linux 微内核(内存管理、程序管理)、初始化进程。但如果要它成为完整的操作系统并且继续保持小型化,还必须加上硬件驱动程序、硬件接口程序和应用程序组。Linux 是基于 GNU 的 C 编译器,作为 GNU 工具链的一部分,与 gdb 源调试器一起工作的。它提供了开发嵌入式 Linux 系统的所有软件工具。2.2 系统硬件平台 在选择硬件时,常由于缺乏完整或精确的信息而使硬件选择成为复杂且困难的工作。硬件开发成本常是我们很关心的。当考虑硬件成本时,

10、须要考虑产品的整个成本而不仅是 CPU 的成本。因为合适的 CPU,一旦加上总线逻辑和延时电路使之与外设一起工作,硬件系统就可能变得非常昂贵。如果要寻找嵌入式软件系统,那么,应首先确定硬件平台,即确定微处理器CPU 的型号。现在比较流行的硬件平台有 Intel 公司的 StrongARM 系列,Motorola 公司的 DragonBall系列,NEC 公司的 VR 系列,Hitachi 公司的 SH3、SH4 系列等等。选定硬件平台前,首先要确定系统的应用功能和所需要的速度,并制定好外接设备和接口标准。这样才能准确地定位所需要的硬件方案,得到性价比最高的系统。3 嵌入式 Linux 系统开发

11、模式3 嵌入式 Linux 系统开发模式 嵌入式系统通常为一个资源受限的系统。直接在嵌入式系统的硬件平台上编写软件比较困难,有时甚至是不可能的。一般流程见图 2。目前,一般采用的办法是,先在通用计算机上编写程序,然后,通过交叉编译,生成目标平台上可运行的二进制代码格式,最后下载到目标平台上的特定位置上运行,具体步骤如下。第一步,建立嵌入式 Linux 交叉开发环境。目前,常用的交叉开发环境主要有开放和商业两种类型。开放的交叉开发环境的典型代表是 GNU 工具链,目前已经能够支持 x86、ARM、MIPS、PowerPC 等多种处理器。商业的交叉开发环境主要有 Metrowerks CodeWa

12、rrior、ARM Software Development Toolkit、SDS Cross compiler、WindRiver Tornado、Microsoft Embedded Visual C+等。交叉开发环境是指编译、链接和调试嵌入式应用软件的环境。它与运行嵌入式应用软件的环境有所不同,通常采用宿主机/目标机模式,见图 3。第二步,交叉编译和链接。在完成嵌入式软件的编码之后,就是进行编译和链接,以生成可执行代码。由于开发过程大多是在 Intel 公司 x86 系列 CPU 的通用计算机上进行的,而目标环境的处理器芯片却大多为 ARM、MIPS、PowerPC、DragonBal

13、l 等系列的微处理器,这就要求在建立好的交叉开发环境中进行交叉编译和链接。例如,在基于 ARM 体系结构的 gcc 交叉开发环境中,arm-linux-gcc 是交叉编译器,arm-linux-ld 是交叉链接器。通常情况下,并不是每一种体系结构的嵌入式微处理器都只对应于一种交叉编译器和交叉链接器。如对于 M68K 体系结构的 gcc 交叉开发环境而言,就对应于多种不同的编译器和链接器。如果使用的是 COFF 格式的可执行文件,那么在编译Linux 内核时,需要使用 m68k-coff-gcc 和 m68k-coff-ld,而在编译应用程序时则需要使用m68k-coff-pic-gcc 和 m

14、68k-coff-pic-ld。编写好的嵌入式软件经过交叉编译和交叉链接后,通常会生成两种类型的可执行文件:用于调试的可执行文件和用于固化的可执行文件。第三步,交叉调试。硬件调试。如果不采用在线仿真器,可以让 CPU 直接在其内部实现调试功能,并通过在开发板上引出的调试端口,发送调试命令和接收调试信息,完成调试过程。目前,Motorola公司提供的开发板上使用的是 DBM 调试端口,而 ARM 公司提供的开发板上使用的则是 JTAG调试端口。使用合适的软件工具与这些调试端口进行连接,可以获得与 ICE 类似的调试效果。软件调试。在嵌入式 Linux 系统中,Linux 系统内核调试,可以先在

15、Linux 内核中设置一个调试桩(debug stub),用作调试过程中和宿主机之间的通信服务器。然后,可以在宿主机中通过调试器的串口与调试桩进行通信,并通过调试器控制目标机上 Linux 内核的运行。嵌入式上层应用软件的调试可以使用本地调试和远程调试两种方法。如果采用的是本地调试,首先要将所需的调试器移植到目标系统中,然后就可以直接在目标机上运行调试器来调试应用程序了;如果采用的是远程调试,则需要移植一个调试服务器到目标系统中,并通过它与宿主机上的调试器共同完成应用程序的调试。在嵌入式 Linux 系统的开发中,远程调试时目标机上使用的调试服务器通常是 gdbserver,而宿主机上使用的调

16、试器则是 gdb。两者相互配合共同完成调试过程。第四步,系统测试。整个软件系统编译过程,嵌入式系统的硬件一般采用专门的测试仪器进行测试,而软件则需要有相关的测试技术和测试工具的支持,并要采用特定的测试策略。测试技术指的是软件测试的专门途径,以及能够更加有效地运用这些途径的特定方法。在嵌入式软件测试中,常常要在基于目标机的测试和基于宿主机的测试之间做出折衷。基于目标机的测试需要消耗较多的时间和经费,而基于宿主机的测试虽然代价较小,但毕竟是在仿真环境中进行的,因此难以完全反映软件运行时的实际情况。这两种环境下的测试可以发现不同的软件缺陷,关键是要对目标机环境和宿主机环境下的测试内容进行合理取舍。嵌

17、入式软件测试中经常用到的测试工具主要有:内存分析工具、性能分析工具、覆盖分析工具、缺陷跟踪工具等,在这里不加详述。嵌入式 Linux 系统的典型构成见图 4。以下即为一个典型开发工具的使用流程:写入或植入引导码;向串口打印字符串的编码;将 gdb 目标码移植工作串口,可与另一台运行 gdb 程序的 Linux 主机系统对话;利用 gdb 让硬件和软件初始化码在 Linux 内核启动时工作;Linux 内核启动,串口成为 Linux 控制口并可用于后续开发;如果在目标硬件上已运行了完整的 Linux 内核,即可调试用户的应用进程。4 嵌入式 Linux 面临的挑战 4 嵌入式 Linux 面临的

18、挑战 目前,对嵌入式 Linux 系统的开发正在蓬勃兴起,并已形成了很大的市场。除了一些传统的Linux 公司,像 RedHat、VA Linux 等,正在从事嵌入式 Linux 的研究之外,一批新公司(如Lineo、TimeSys 等)和一些传统的大公司(如 IBM、SGI、Motorola、Intel 等)以及一些开发专用嵌入式操作系统的公司(如 Lynx)也都在进行嵌入式 Linux 的研究和开发。但就目前的技术而言,嵌入式 Linux 的研究成果与市场的真正需求还有一些距离,因此,嵌入式Linux 走向成熟还需要在以下几个方面有所发展。(1)Linux 的实时性扩充 实时性是嵌入式操作

19、系统的基本要求。由于 Linux 还不是一个真正的实时操作系统,内核不支持事件优先级和抢占实时特性,所以在开发嵌入式Linux的过程中,首要问题是扩展Linux的实时性能。对 Linux 实时性的扩展可以从两方面进行:向外扩展和向上扩展。向外扩展即从范围上扩展,让实时系统支持的范围更广,支持的设备更多。目前的开发所面向的设备仅限于较简单的有实时要求的串/并口数据采集、浮点数据计算等,而像实时网络这样实时系统的高级应用还需进一步发展。向上扩展是扩充 Linux 内核,从功能上扩充 Linux 的实时处理和控制系统。如嵌入式系统 RT-Linux,它的基本原理是将 Linux 本身的任务以及 Li

20、nux内核本身作为一个优先级最低的任务,而实时任务作为优先级最高的任务,即在实时任务存在的情况下运行实时任务,否则就运行 Linux 本身的任务。实时任务不同于 Linux 普通进程。它是以 Linux 的可装载的内核模块(Loadable Kernel Module,LKM)的形式存在的,需要运行实时任务的时候,将这个实时任务的内核模块插入到内核中去,实时任务和 Linux 一般进程之间的通信通过共享内存或者 FIFO 通道来实现。(2)改变 Linux 内核的体系结构 Linux 的内核体系采用的是 Monolithic。在这种体系结构中,内核的所有部分都集中在一起,而且所有的部件在一起编

21、译连接。这样虽然能使系统的各部分直接沟通,有效地缩短任务之间的切换时间,提高系统的响应速度和 CPU 的利用率,且实时性好;但在系统比较大时体积也比较大,与嵌入式系统容量小、资源有限的特点不符。而另外一种内核体系结构MicroKernel,在内核中只包括了一些基本的内核功能,如创建和删除任务、任务调度、内存管理和中断处理等部分,而文件系统、网络协议栈等部分都是在用户内存空间运行。这种结构虽然执行效率不如 Monolithic 内核,但大大减小了内核的体积,同时也方便了整个系统的升级、维护和移植,更能满足嵌入式系统的特点需要。为此,要使嵌入式 Linux 的应用更加广泛,若将 Linux 目前的

22、 Monolithic 内核结构中的部分结构改造成 MicroKernel 体系结构,可使得到的 Linux 既具有很好的实时性,又能满足嵌入式系统体积小的要求。另外,Linux 是一个需要占用存储器的操作系统。虽然这可以通过减少一些不必要的功能来弥补,但可能会浪费很多时间,而且容易带来很大的麻烦。许多 Linux 的应用程序都要用到虚拟内存,这在许多嵌入式系统中是没有价值的。所以,并不是一个没有磁盘的 Linux 嵌入式系统就可以运行任何 Linux 应用程序。(3)完善 Linux 的集成开发环境 提供完整的集成开发环境是每一个嵌入式系统开发人员所期待的。一个完整的嵌入式系统的集成开发环境

23、一般需要提供的工具是:编译/连接器、内核调试/跟踪器和集成图形界面开发平台。其中的集成图形界面开发平台包括编辑器、调试器、软件仿真器和监视器等。在 Linux系统中,具有功能强大的 gcc 编译器工具链,使用了基于 GNU 的调试器 gdb 的远程调试功能,一般由一台客户机运行调试程序调试宿主机运行的操作系统内核;在使用远程开发时还可以使用交叉平台的方式,如在 Windows 平台下的调试跟踪器对 Linux 的宿主系统做调试。但是,Linux 在基于图形界面的特定系统定制平台的研究上,与 Windows 操作系统相比还存在差距。因此,要使嵌入式 Linux 在嵌入式操作系统领域中的优势更加明

24、显,整体集成开发环境还有待提高和完善。5 嵌入式 Linux 的发展及应用前景5 嵌入式 Linux 的发展及应用前景 综上,由于 Linux 具有对各种设备的广泛支持性,因此,能方便地应用于机顶盒、IA 设备、PDA、掌上电脑、WAP 手机、寻呼机、车载盒以及工业控制等智能信息产品中。与 PC 相比,手持设备、IA 设备以及信息家电的市场容量要高得多,而 Linux 嵌入式系统的强大的生命力和利用价值,使越来越多的企业和高校表现出对它极大的研发热情。蓝点软件公司、博利思公司、共创软件联盟、中科红旗等公司都已将嵌入式系统的开发作为自己的主要发展方向之一。在嵌入式系统的应用中,Linux 嵌入式操作系统所具有的技术优势和独特的开发模式给业界以新异。有理由相信,它能成为 Internet 时代嵌入式操作系统中的最强音。来源于:单片机及嵌入式系统应用

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com