嵌入式linux与嵌入式系统设计

时间:2021-09-05 11:34:32

1、 后PC时代的嵌入式系统是什么?

2、 嵌入式系统的构成:
嵌入式linux与嵌入式系统设计 

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--------对于非商用开发者可免费获得,http://get.qnx.com
(8) OS-9------多媒体,消费电子
(9) Embedded linux----正在兴起(注意)
(10) UcOS、RTEMS----免费,开放源代码后者为美国军方使用。(注意)
“内核抢先”的特点,没有原子操作,或者内核的抢先点比较紧密。
结构:APP-- pSOS+ ---- BSP  -- hardware
PSOS+ 小于20K
PSOSelect 1.8K
一个pSOS+有什么?
基本系统:
pROBE+ 静态debug工具
pREPC+ ANSI C库
pNA+   网络协议包,各层协议之间“0”拷贝,TCP/IP报文发送中通过指针来实现
pHILE+ 支持MSDOS,CDROM,NFS以及自定义格式
pMONT+ 动态的调试工具,观察现在的任务的运行状况
扩展模块:
OPEN : unix v. 的stream
Router: OSPF,RIP2,SNMPv2
调试手段:
软件Monitor,类似8031/51的方式
仿真器:CPU仿真器(X86), BDM调试器(Mot)

嵌入式微处理器:
流水线深、多是实时不好的原因。

(1) X86体系:AMD4xx,Intel 386EX,Ali386--------最小的WEB server,Standford Univ.
(2) ARM体系:Intel Strong ARM,机顶盒应用,Intel号称转向网络处理器的开发
(3) 68k/PowerPC体系:Motorola公司,嵌入式微处理器的老大,类似Intel公司在Desktop PC上的地位;路由器,交换机,商务通等手持设备
(4) etc.日本公司的ARM core处理器

4、 Open hardware运动以及open software运动
Uclinux以及StrongARM都有公开的硬件电路图。

5、 嵌入式linux技术的关键
(1)对linux的裁减达到小型化的目的,并移植应用程序;
(2)对不同嵌入式微处理器的linux内核代码移植(uclinux,xinhua_rong),
(3)图形接口GUI以及微型浏览器的研究。Cool_bird & sky_yin
嵌入式linux与嵌入式系统设计 
图2 嵌入式Linux硬件平台框图

  嵌入式Linux可以应用于嵌入式网络通讯设备、个人数字助理(PDA)、工业控制设备等场合,下面给出的应用实例可以将普通打印机转换为网络打印服务器,其实现的硬件成本仅需几百元,同时具有良好的系统功能扩充性,例如可以控制打印的权限、使用时间、打印张数,甚至能自动收E-mail并打印输出,其硬件平台的框图如图2所示。在图2中,我们选用AMD公司的ELAN 4xxx系列是专注于嵌入式工业应用的MCU,该MCU属于X86体系结构,兼容一般桌面PC的Linux i386版本。这样,我们可以直接使用X86体系的编译器对Linux核心源代码直接进行编译及裁剪。
表一:专用嵌入式实时操作系统 vs 嵌入式Linux操作系统

  专用嵌入式实时操作系统 嵌入式Linux操作系统
版权费 每生产一件产品需交纳一份版权费 免费
购买费用 人民币数十万 免费
技术支持 由开发商一家提供有限的技术支持 全世界的*软件开发者提供支持
网络特性 另加人民币数十万购买 免费而且性能优异
软件移植 难,因为是封闭系统 易,代码开放,有许多应用软件支持
应用产品开发周期 长,因为可参考的代码有限 短,新产品上市迅速,因为有许多公开的代码可以参考和移植
实时性能 需改进,可用RT_Linux等模块弥补
稳定性 较好,在高性能系统中有待改进

表二:开发路由器----VxWorks专用操作系统 vs 嵌入式Linux操作系统
项目:开发路由器 使用VxWorks专用操作系统 使用嵌入式Linux操作系统
产品上市时间 长达9个月 仅需3个月
投入开发的人力 多达六人以上 只需三人
产品的成本 每台路由器需要交一份版权费,成本大大提高 没有任何附加费
产品功能的丰富性 一般,增加功能要象厂家购买模块 丰富,只需利用*软件的大量公开代码移植
网络特性 另外购买网络模块,如OSPF动态路由协议库,很昂贵;若自行开发,则稳定性差,开发时间长 免费获得*软件代码,只需移植,由于来自桌面Linux平台,继承性好,稳定性好,开发时间短
产品升级以及对新网络协议的支持 厂家反映慢,支持慢,不一定能支持新特性 利用全世界Linux*软件开发团体的力量,支持迅速

嵌入式linux与嵌入式系统设计 
1 如何选用合适的Linux版本

用户可以获得多种配置及体系不同的Linux版本,另外,还有一些把Linux移植到非X86体系的CPU(包括PowerPC、RISC、68K以及许多别的微控制器)上的版本。因此,我们如何选择Linux的发行版本,也是一个重要的问题。
Linux的版本主要有四大类:
  (1)标准的Linux版本。
  (2)小型化的嵌入式版本(Small foot-print“embedded”Version)。
  (3)具有实时扩展功能的Linux版本。
(4) Linux特殊应用版本。例如有许多针对不同的如“瘦服务器”或“防火墙”应用的小型化、实时特性增强的版本。

3 Linux的小型化

  对于嵌入式Linux的主要挑战是把系统资源的需求减少,以适应于诸如内存、固态电子盘容量、处理器速度、以及节能的限制。嵌入式操作系统需要从一个芯片级盘片或者闪存式电子盘启动,或者启动并运行于没有显示及键盘的环境中,或从一个远程的设备上通过以太网连接来加载应用程序。现在已经有一些可参考的小型Linux的来源,其中又发展出大量的Linux配置及发行版本用来满足特别的需求,诸如路由器、防火墙、Internet以及网络应用,网络服务器、网关等等。
我们可以有选择地生成我们需要的嵌入式Linux,从一个标准发行版中开始裁减不需要的模块。甚至,我们可以从别人配置过的版本开始开发,因为他人的嵌入式版本也开放源代码的,最突出的优点是在他人的工作的基础上建立自己的系统,这在Linux开发群体中不仅是合法的,而且是受到鼓励的和支持的。
  由于Linux作为开放源代码的*软件,使我们可以根据应用系统设计的具体需要对Linux内核源代码进行修改、裁剪、增加以及重新编译。系统实现步骤为:
  (1) 重新编译Linux内核(kernel),去掉内核中不需要的模块,诸如PCMCIA之类的外设支持模块等。
         (2) 编写Boot Loader,制作Boot ROM用于加载嵌入式Linux内核到内存中。
         (3) 重新设计以太网驱动程序以及串/并口驱动程序。
         (4) 设计嵌入式Linux应用程序,管理打印服务的应用。
         (5) 嵌入式Linux系统执行流程如图1所示。

嵌入式linux与嵌入式系统设计 

图 1 系统执行流程图

4 实时Linux

  许多嵌入式系统要求能预测、可限定响应时间地响应外界事件,此类实时系统包括工厂自动控制、数据采集、控制系统、音频及视频应用、多数电脑化产品及设备。通用的可接受的“实时”概念的定义是:来自外界的事件必须在可预测的、相对短的时间段内得到响应。尽管Linux不是一个是真正的实时操作系统(Linux内核不提供对事件优先级及抢占特性的支持),但它已经有几个增加的选择可以给基于Linux的系统提供实时特性。
  其中,最常用的办法是双内核相结合,把一个通用操作系统作为一个任务运行在一个实时内核上。通用操作系统提供磁盘读写、网络及通讯、串/并口读写、系统初始化、内存管理等等功能,而实时内核则处理实时事件的响应。双内核策略充分兼容标准的Linux,而又采用一种不干扰原Linux的方式来增加了实时功能。
  实时是一个相对的概念,并非绝对的表述。哪些场合需要实时特性呢?早期的嵌入式系统运行在4/8位的、10MHz以下的主频的CPU以及几KB的内存当中。一个实时系统必须在一个可接受的、可预测的时间间隔之中处理外界任.务。尽管CPU的运行速度一直在提高,但是现实世界中的事件发生的速率是不变的。因此,实时特性变得易于满足。现在,实时特性变得不那么重要了,更受重视的是功能的成熟以及如何缩短产品的上市时间。过去是看重基于CPU速度的执行效率问题,而现在及未来则更看重如何适应以Internet为中心的通讯协议的问题。

5 嵌入式Linux的应用趋势

5.1 软件化的趋势

  操作系统应用可接受的结果是:软实时。在许多系统中,我们能保证应用程序能满足实时的要求而不必要使用特定的实时操作系统。当要求的响应时间是在毫秒级别而非微秒级别的时候,这是可行的。一个小型化配置的Linux和一个合理的较高速的CPU(486 133 MHz或者更高),不需要特别的实时模块也能满足我们的要求。如果软实时能满足你的要求,那么你可以选用一个叫“Linux-SRT”的外加Linux模块(SRT是Soft Real-Time的缩写)。
另一方面,如果我们需要微秒级的响应时间,我们可以选用一个并不是很昂贵的微处理器或者DSP来处理关键性时间事件,或者我们可以选用好几个可以得到的实时Linux外挂模块:RT-linux或者RTAI。

5.3 嵌入式Linux应用领域

  对于桌面系统,微软的Windows有着强劲的优势,不要期望一般的PC用户很快转向使用Linux。但在嵌入式及实时应用中,操作系统是不可见的、隐藏的技术,只对应用提供相关的支持,诸如一个非电脑设备。对于用户更乐于使用嵌入式Linux的应用产品,而不是使用Linux。对于系统开发者而言,Linux如下的特点是选择的关键:
  (1)源代码可*获得。
  (2)无单个产品的版权费。
  (3)支持大量的硬件设备。
  (4)Linux已经是一个全球性的标准。
        (5)Linux是一个成熟的、高效的、健壮的、可靠的、模块化的、非常易于配置的操作系统。
  嵌入式Linux已经不可逆转地改变了嵌入式实时操作系统的市场前景。开发者拥有了对他们的嵌入式操作系统更好的控制权;制造商则在成本以及令人头痛的单一产品版权费问题上获得前所未有的收益,而最终用户则可得到更有价值的且价格较低的产品。

6 嵌入式Linux的网上资源

6.1 标准的Linux版本
  (1)Caldera:http://www.calderasystems.com/
  (2)Corel:http://linux.corel.com/
  (3)Debian:http://www.debian.org.com/
  (4)Mandrake:http://www.linux-mandrake.comlen/
  (5)Red Hat:http://www.reahat.com/
  (6)Slackware:http://www.slackware.com/
  (7)SuSE:http://www.suse.com
  (8)Turbo Linux:http://www.turbolinux.com/
6.2 小型化的嵌入式版本
(1)ETLinux:http://www.prosa.it/embedded/etlinux/
(2)LEM:http://www.linux-embedded.com/lem.php3
(3)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.org
6.3 具有实时扩展功能的Linux版本
(1)RTLinux:http://www.rtlinux.com
(2)RTLinux:http://www.FSMLabs.com
(3)RTAI:http://www.rtai.org/
(4)EL/IX:http://www.sourceware.cygus.com/elix/
(5)SRT-Linux:http://www.cl.cam.ac.uk/~dmi1000/linux-srt/index.html
6.4  Linux特殊应用版本
(1)FirePlugLinux:http://www.fireplug.net/
(2)KOSIX:http://www.touchdynamics.com/KOSIX.html
(3)Linux Router Project:http://www.linuxrouter.org/
(4)Pizzabox Linux:http://www.jrcs.co.wk