嵌入式系统课程论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南京信息工程大学
嵌入式系统设计
题目:嵌入式Linux操作系统的
开发与应用
姓名:
学号:
院系:电子与信息工程学院
专业:电子信息工程
指导老师:
二0一二年五月二十日
嵌入式Linux操作系统的开发与应用
电子与信息工程学院南京210044
摘要:Linux是一个功能强大而稳定的操作系统,它可以运行在X86 PC,Sun Sparc,Digtial Alpha,680x0,PowerPC及MIPS等多种平台上,可见,Linux是目前支持硬件平台最多的操作系统。Linux 最大的特点在于它是开放源代码的,它遵循公共版权许可证(GPL),秉承“自由的思想,开放的源码”的原则。本文主要介绍了嵌入式Linux操作系统的特点,开发流程及应用。
关键词:嵌入式系统,嵌入式Linux,特点,开发流程,应用
0 引言
嵌入式系统是将计算机硬件和软件结合起来构成的一个专门的装置,这个装置可以完成一些特定的功能和任务。嵌入式系统已经有了40多年的发展历史,并且是以硬件和软件交替双螺旋式发展的。嵌入式系统采用“量体裁衣”的方式把所需的功能嵌入到各种应用系统中。嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入系统极为重要的组成部分。嵌入式操作系统具有能够有效管理越来越复杂的系统资源,能够把硬件虚拟化,能够提供库函数、驱动程序及工具集等特点。常见的嵌入式操作系统有:VxWorks、QNX、Nucleus Embedded、ThreadX、uC/OS-Ⅱ、Linux等等。
1嵌入式系统的基本概况
1.1 嵌入式系统的概念
嵌入式系统的一般定义是:以应用为中心,以计算机技术为基础,软件、硬件可裁减,功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。另外,根据不同的分类标准,嵌入式系统有不同的分类方法,根据嵌入式系统的复杂程度,可以分为简单嵌入式系统和复杂嵌入式系统。
1.2 嵌入式系统的组成
从组成上看,嵌入式系统可分为嵌入式硬件系统和嵌入式软件系统两大部分,如图1所示。
嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌嵌
嵌
嵌
嵌
嵌
嵌
嵌
嵌
嵌
嵌
嵌
嵌
嵌
嵌
图1 嵌入式系统组成
嵌入式硬件系统主要由嵌入式处理器及相关支撑硬件和外围电路等组成。其中,嵌入式处理器在嵌入式硬件系统中处于核心地位,按照功能和用途划分,它可以进一步细分为以下几种类型:嵌入式微控制器、嵌入式微处理器和嵌入式数字信号处理器。嵌入式软件系统通常可划分为嵌入式操作系统和应用软件两部分。在一些复杂的系统中,为了简化应用开发,还提供了一个中间层(嵌入式中间件层)。在早期的嵌入式系统中,系统的复杂性较低,这时的嵌入式系统通常不使用操作系统,而是由应用程序控制和管理硬件。
2 嵌入式Linux 操作系统
2.1 Linux 的历史
最初的Linux 的代码是1991年由芬兰的大学生Linus Torvalds 写的。他将Linux 的原始代码放在Internet 上,让人们自由下载。1993年底到1994年初,Linux 1.0终于诞生了,他已经是一个功能完备的操作系统,而且内核写得紧凑、高效,可以充分发挥硬件的性能。Linux 的生命力来自于它的开源思想,自Linus 公开Linux 代码以来,世界各地的程序员和软件爱好者不断地对Linux 系统进行修改和加强。在开源运动的带动下,数不胜数的应用软件出现在Linux 系统之上,大大加强了Linux 系统的使用能力。
2.2 Linux 操作系统的特点
第一,Linux 系统是层次结构且内核完全开放。Linux 是由很多体积小且性能高的微内核系统组成。在内核代码完全开放的前提下,不同领域和不同层次的用户可以根据自己的应用需要方便地对内核进行改造,低成本地设计和开发出满足自己需要的嵌入式系统。
第二,强大的网络支持功能。Linux 诞生于因特网时代并具有Unix 的特性,保证了它支持所有标准因特网协议,并且可以利用Linux 的网络协议栈将其开发成为嵌入式的TCP/IP
网络协议栈。此外,Linux还支持ext2、fat16、fat32、romfs等文件系统,为开发嵌入式系统应用打下了很好的基础。
第三,Linux具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,可以跨越嵌入式系统开发中仿真工具的障碍。Linux也符合IEEE POSIX.1标准,使应用程序具有较好的可移植性。使用嵌入式Linux,一旦软硬件能够支持正常的串口功能,即使不用仿真器,也可以很好地进行开发和调试工作,从而节省一笔不小的开发费用。嵌入式Linux 为开发者提供了一套完整的工具链(tool chain)。它利用GNU的gcc做编译器,用gdb、kgdb、xgdb做调试工具,能够很方便地实现从操作系统到应用软件各个级别的调试。
第四,Linux具有广泛的硬件支持特性。无论是RISC还是CISC、32位还是64位等各种处理器,Linux都能运行。Linux通常使用的微处理器是Intel X86芯片家族,但它同样能运行于Motorola公司的68K系列CPU和IBM、Apple、Motorola公司的PowerPC CPU以及Intel公司的StrongARM CPU等处理器。Linux支持各种主流硬件设备和最新硬件技术,甚至可以在没有存储管理单元(MMU)的处理器上运行。这意味着嵌入式Linux将具有更广泛的应用前景。
2.3 嵌入式Linux系统的开发流程
嵌入式系统的开发与通常PC机上的软件开发有很大的区别,原有的PC机的软件开发过程从编写程序、编译和运行等过程全在同一个PC机平台上完成;嵌入式开发的程序编写和编译还在PC机上完成,但编译产生的结果要在嵌入式目标平台上运行。通常将这种在主机上开发编译,在目标平台上调试运行的开发模式称为交叉开发。运行在主机上的编译器(如GCC)编译程序产生目标机上运行的可执行程序的编译过程称为交易编译。嵌入式系统采用这种交叉开发、交叉编译的开发模式主要是因为嵌入式系统是种专用的计算机系统,采用量体裁衣、量身定制的方法制造,它的这种特点使其与通用PC机的开发与使用特点有很大的不同。图2是一个嵌入式交叉开发环境的示意图。