1、嵌入式 linux 与嵌入式系统设计USTC BBS Embedded 斑竹 D_J 主讲感谢 Hongtao_chen 以及 Networking 斑竹 Jun_zxjun 的大量幕后工作! !感谢 James_zhang 以及网络中心提供聚会的场地和大力支持! ! !欢迎访问我的主页 http:/202.38.6 4.11/wangzhuo聚会详情如下:名称: “嵌入式系统设计以及嵌入式 Linux 展望”时间: 本周星期天(2k.5.28)晚上 7:30地点:东区网络中心三楼会议室(如有变动,将在本版通知,请密切关注)形式:先是短时报告,每个 20 分钟左右,每个报告结束后有 10 分钟
2、左右的听众提问。报告都结束之后,大家自由扎堆聊天。短时报告的内容:报告一: “uclinux 硬件设计体验”-xinhua_rong报告二: “IPv6 与 Linux ”-luster_witty报告三: “嵌入式 GUI 以及微型浏览器的预研及现场演示”-cool_bird 及 sky_yin报告四: “linux 体系结构分析” (主要介绍 devices driver 以及 memory management)-老铁报告五: “嵌入式 linux 与嵌入式系统设计”-D_J1、 后 PC 时代的嵌入式系统是什么?-图片展示。2、 嵌入式系统的构成:3、 商用嵌入式操作系统以及嵌入式微处
3、理器分类介绍商用嵌入式操作系统:(1) pSOS+ & VxWorks-中兴通讯、华为、迪科(从 WinCE 转向 pSOS+)等公司使用(注意)(2) WindowsCE-不用说了,MicroSoft 的,PocketPC,展示图片:微软的 pocketPC设备_Xbox_来自 E3 展会(注意)(3) Chorus-被 Sun 公司收购了,机顶盒应用;Jini 技术。(4) LynxOS-UNIX 全兼容,全面转向 Embedded linux-blue cat linux(5) OSE-欧洲(6) VRTX-以前的系统,已经有些落后(7) QNX-对于非商用开发者可免费获得,h ttp:
4、/(8) OS-9-多媒体,消费电子(9) Embedded linux-正在兴起(注意)(10) UcOS、RTEMS-免费,开放源代码后者为美国军方使用。(注意)“内核抢先”的特点,没有原子操作,或者内核的抢先点比较紧密。结构:APP- pSOS+ - BSP - hardwarePSOS+ 小于 20KPSOSelect 1.8K一个 pSOS+有什么?基本系统:pROBE+ 静态 debug 工具pREPC+ ANSI C 库pNA+ 网络协议包,各层协议之间 “0”拷贝,TCP/IP 报文发送中通过指针来实现pHILE+ 支持 MSDOS ,CDROM,NFS 以及自定义格式pMON
5、T+ 动态的调试工具,观察现在的任务的运行状况扩展模块:OPEN : unix v. 的 streamRouter: OSPF,RIP2,SNMPv2调试手段:软件 Monitor,类似 8031/51 的方式仿真器:CPU 仿真器(X86) , BDM 调试器(Mot)嵌入式微处理器:流水线深、多是实时不好的原因。http:/http:/(1) X86 体系:AMD4xx, Intel 386EX,Ali386-最小的 WEB server, Standford Univ.(2) ARM 体系:Intel Strong ARM,机顶盒应用,Intel 号称转向网络处理器的开发(3) 68k/
6、PowerPC 体系:Motorola 公司,嵌入式微处理器的老大,类似 Intel 公司在Desktop PC 上的地位;路由器,交换机,商务通等手持设备(4) etc.日本公司的 ARM core 处理器4、 Open hardware 运动以及 open software 运动Uclinux 以及 StrongARM 都有公开的硬件电路图。展示图片:5、 嵌入式 linux 技术的关键(1)对 linux 的裁减达到小型化的目的,并移植应用程序;(2)对不同嵌入式微处理器的 linux 内核代码移植(ucl inux,xinhua_rong) ,驱动程序的研究(老铁);(3)图形接口 G
7、UI 以及微型浏览器的研究。Cool_bird & sky_yin图 2 嵌入式 Linux 硬件平台框图嵌入式 Linux 可以应用于嵌入式网络通讯设备、个人数字助理(PDA)、工业控制设备等场合,下面给出的应用实例可以将普通打印机转换为网络打印服务器,其实现的硬件成本仅需几百元,同时具有良好的系统功能扩充性,例如可以控制打印的权限、使用时间、打印张数,甚至能自动收 E-mail 并打印输出,其硬件平台的框图如图 2 所示。在图 2 中,我们选用 AMD 公司的 ELAN 4xxx 系列是专注于嵌入式工业应用的 MCU,该 MCU 属于 X86 体系结构,兼容一般桌面 PC 的 Linux
8、i386 版本。这样,我们可以直接使用 X86 体系的编译器对 Linux 核心源代码直接进行编译及裁剪。16 位总线外设以太网接口AMD ELAN 4xxx MCUFlash MemoryRAM并口串口表一:专用嵌入式实时操作系统 vs 嵌入式 Linux 操作系统专用嵌入式实时操作系统 嵌入式 Linux 操作系统版权费 每生产一件产品需交纳一份版权费 免费购买费用 人民币数十万 免费技术支持 由开发商一家提供有限的技术支持 全世界的自由软件开发者提供支持网络特性 另加人民币数十万购买 免费而且性能优异软件移植 难,因为是封闭系统 易,代码开放,有许多应用软件支持应用产品开发周期长,因为可
9、参考的代码有限 短,新产品上市迅速,因为有许多公开的代码可以参考和移植实时性能 好 需改进,可用 RT_Linux 等模块弥补稳定性 好 较好,在高性能系统中有待改进表二:开发路由器-VxWorks 专用操作系统 vs 嵌入式 Linux 操作系统项目:开发路由器 使用 VxWorks 专用操作系统 使用嵌入式 Linux 操作系统产品上市时间 长达 9 个月 仅需 3 个月投入开发的人力 多达六人以上 只需三人产品的成本 每 台路由器需要交一份版权费,成本大大提高没有任何附加费产品功能的丰富性 一 般,增加功能要象厂家购买模块丰富,只需利用自由软件的大量公开代码移植网络特性 另外购买网络模块
10、,如 OSPF动态路由协议库,很昂贵;若自行开发,则稳定性差,开发时间长免费获得自由软件代码,只需移植, 由于来自桌面 Linux平台,继承性好,稳定性好,开发时间短产品升级以及对新网络协议的支持厂家反映慢,支持慢,不一定能支持新特性利用全世界 Linux 自由软件开发团体的力量,支持迅速1 如何选用合适的 Linux 版本用户可以获得多种配置及体系不同的 Linux 版本,另外,还有一些把 Linux 移植到非X86 体系的 CPU(包括 PowerPC、RISC、68K 以及许多别的微控制器)上的版本。因此,我们如何选择 Linux 的发行版本,也是一个重要的问题。Linux 的版本主要有
11、四大类:(1)标准的 Linux 版本。(2)小型化的嵌入式版本(Small foot-pr int“embedded”Version)。(3)具有实时扩展功能的 Linux 版本。(4) Linux 特殊应用版本。例如有许多针对不同的如“瘦服务器”或“防火墙”应用的小型化、实时特性增强的版本。3 Linux 的小型化对于嵌入式 Linux 的主要挑战是把系统资源的需求减少,以适应于诸如内存、固态电子盘容量、处理器速度、以及节能的限制。嵌入式操作系统需要从一个芯片级盘片或者闪存式电子盘启动,或者启动并运行于没有显示及键盘的环境中,或从一个远程的设备上通过以太网连接来加载应用程序。现在已 经有一
12、些可参考的小型 Linux 的来源,其中又发展出大量的 Linux 配置及发行版本用来满足特别的需求,诸如路由器、防火墙、Internet 以及网络应用,网络服务器、网关等等。我们可以有选择地生成我们需要的嵌入式 Linux,从一个标准发行版中开始裁减不需要的模块。甚至,我们可以从别人配置过的版本开始开发,因为他人的嵌入式版本也开放源代码的,最突出的优点是在他人的工作的基础上建 立自己的系统,这在 Linux 开发群体中不仅是合法的,而且是受到鼓励的和支持的。由于 Linux 作为开放源代码的自由软件,使我们可以根据应用系统设计的具体需要对Linux 内核源代码进行修改、裁剪、增加以及重新编译
13、。系统实现步骤为:(1) 重新编译 Linux 内核(kernel),去掉内核中不需要的模块,诸如 PCMCIA 之类的外设支持模块等。(2) 编写 Boot Loader,制作 Boot ROM 用于加载嵌入式 Linux 内核到内存中。(3) 重新设计以太网驱动程序以及串并口驱动程序。(4) 设计嵌入式 Linux 应用程序,管理打印服务的应用。(5) 嵌入式 Linux 系统执行流程如图 1 所示。图 1 系统执行流程图4 实时 Linux许多嵌入式系统要求能预测、可限定响应时间地响应外界事件,此类实时系统包括工厂自动控制、数据采集、控制系统、音频及视频应用、多数电脑化产品及设备。通用的
14、可接受的“实时”概念的定义是:来自外界的事件必须在可预测的、相对短的时间段内得到响应。尽管 Linux 不是一个是真正的实时操 作系统(Linux 内核不提供对事件优先级及抢占特性的支持) ,但它已经有几个增加的选择可以给基于 Linux 的系统提供实时特性。其中,最常用的办法是双内核相结合,把一个通用操作系统作为一个任务运行在一个实时内核上。通用操作系统提供磁盘读写、网络及通讯、串/并口读写、系统初始化、内存管理等等功能,而实时内核则处理实时事件的响应。双内核策略充分兼容标准的 Linux,而又采用一种不干扰原 Linux 的方式来增加了实时功能。实时是一个相对的概念,并非绝对的表述。哪些场
15、合需要实时特性呢?早期的嵌入式系统运行在 4/8 位的、10MHz 以下的主频的 CPU 以及几 KB 的内存当中。一个实时系统必须在一个可接受的、可预测的时间间隔之中处理外界任.务。尽管 CPU 的运行速度一直在提高,但是现实世界中的事件发生的速率是不变的。因此,实时特性变得易于满足。现在,实时特性变得不那么重要了,更受重视的是功能的成熟以及如何缩短产品的上市时间。过去是看重基于 CPU 速度的执行效率问题,而现在及未来则更看重如何适应以 Internet 为中心的通讯协议的问题。5 嵌入式 Linux 的应用趋势加电, 启动 Flash Memory中的 Boot Loader 进行必要的
16、 CPU 初始化内核启动,初始化外设,加载任务,加载 TCP/IP加载 Linux 内核运行应用程序5.1 软件化的趋势操作系统应用可接受的结果是:软实时。在许多系统中,我们能保证应用程序能满足实时的要求而不必要使用特定的实时操作系统。当要求的响应时间是在毫秒级别而非微秒级别的时候, 这是可行的。 一个小型化配置的 Linux 和一个合理的较高速的 CPU (486 133 MHz或者更高) ,不需要特别的实时模块也能满足我们的要求。如果软实时能满足你的要求,那么你可以选用一个叫“Linux-SRT”的外加 Li nux 模块(SRT 是 Soft Real-Time 的缩写)。另一方面,如果
17、我们需要微秒级的响应时间,我们可以选用一个并不是很昂贵的微处理器或者 DSP 来处理关键性时间事件,或者我们可以选用好几个可以得到的实时 Linux 外挂模块:RT-linux 或者 RTAI。5.3 嵌入式 Linux 应用领域对于桌面系统,微软的 Windows 有着强劲的优势,不要期望一般的 PC 用户很快转向使用 Linux。但在嵌入式及实时应用中,操作系统是不可见的、隐藏的技术,只对应用提供相关的支持,诸如一个非电脑设备。对 于用户更乐于使用嵌入式 Linux 的应用产品,而不是使用 Linux。对于系统开发者而言,Linux 如下的特点是选择的关键:(1)源代码可自由获得。(2)无
18、单个产品的版权费。(3)支持大量的硬件设备。(4)Linux 已经是一个全球性的标准。(5)Linux 是一个成熟的、高效的、健壮的、可靠的、模块化的、非常易于配置的操作系统。嵌入式 Linux 已经不可逆转地改变了嵌入式实时操作系统的市场前景。开发者拥有了对他们的嵌入式操作系统更好的控制权;制造商则在成本以及令人头痛的单一产品版权费问题上获得前所未有的收益,而最终用户则可得到更有价值的且价格较低的产品。6 嵌入式 Linux 的网上资源6.1 标准的 Linux 版本(1)Caldera:http:/ / w.linux-len/(5)Red Hat:http:/ Linux:http:/
19、小型化的嵌入式版本(1)ETLinux:http:/www.pr osa.it/embedded/etlinux/(2)LEM:http:/www.linux- Router Project:http:/www.linuxrouter.org/(4)LOAF:http:/loaf.ecks.org/(5)ucLinux:http:/www.uclinux.org/(6)uLinux:http:/sunsite.auc.dk/mulinux/(7)ThinLinux:http:/www.thinlinux.org6.3 具有实时扩展功能的 Linux 版本(1)RTLinux:http:/(2)RTLinux:http:/www.FSML(3)RTAI:http:/www.rtai.org/(4)EL/IX:http:/ w.cl.cam.ac.uk/dmi1000/linux-srt/index.html6.4 Linux 特殊应用版本(1)FirePlugLinux:http:/ Router Project:http:/www.linuxrouter.org/(4)Pizzabox Linux:http:/www.jrcs.co.wk