⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 4.htm

📁 关于linux嵌入式的极好的详解
💻 HTM
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>CTerm非常精华下载</title>
</head>
<body bgcolor="#FFFFFF">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="577">
<tr><td width="32%" rowspan="3" height="123"><img src="DDl_back.jpg" width="300" height="129" alt="DDl_back.jpg"></td><td width="30%" background="DDl_back2.jpg" height="35"><p align="center"><a href="http://bbs.fudan.edu.cn"><font face="黑体"><big><big>日月光华</big></big></font></a></td></tr>
<tr>
<td width="68%" background="DDl_back2.jpg" height="44"><big><big><font face="黑体"><p align="center">                    基于linux的嵌入式系统研究                                   </font></big></big></td></tr>
<tr>
<td width="68%" height="44" bgcolor="#000000"><font face="黑体"><big><big><p   align="center"></big></big><a href="http://cterm.163.net"><img src="banner.gif" width="400" height="60" alt="banner.gif"border="0"></a></font></td>
</tr>
<tr><td width="100%" colspan="2" height="100" align="center" valign="top"><br><p align="center">[<a href="基于linux的嵌入式系统研究.htm">回到开始</a>][<a href="基于linux的嵌入式系统研究.htm">上一层</a>][<a href="5.htm">下一篇</a>]
<hr><p align="left"><small>发信人: smilecrying (越龙), 信区: Embedded <br>

标  题: 基于linux的嵌入式系统研究(4) <br>

发信站: 日月光华 (2003年05月25日16:34:21 星期天) <br>

  <br>

  <br>

第三章 采用Linux作为嵌入式系统开发的原因 <br>

    从我们现在对嵌入式系统开发的需求来看,我们准备采取Linux作为开发嵌入式系统的  <br>

具,依靠Linux,实现我们的实时系统,并且可以通过Linux本身的不断升级,自动扩充升 <br>

级我们的嵌入式系统。Linux下面已经有了Real-Time Linux或者RTAI,他们的做法是在Li <br>

nux已经有的内核上面提供一个小型的实时内核。由这个实时内核来控制实时任务,由Lin <br>

ux原来的内核来控制非实时任务。Linux本身的内核作为实时内核可抢占的一个任务,因为 <br>

这个实时内核实现得相当简单,那么在任务运行和切换的过程中,运行效率上可以达到硬 <br>

实时的要求。 <br>

    Linux提供了很多优点,在第一章已经描述。这些优点都可以被Real-Time Linux所利用用  <br>

尤其是在第二章里面描述的那些嵌入式系统必需的要求上,Real-Time Linux可以很轻松的 <br>

满足。下面针对这些需求阐述我们使用Linux的原因。 <br>

3.1 嵌入式处理器支持 <br>

Linux内核提供对多种处理器的支持,并且正在进一步增加对嵌入式微处理器的支持。Lin <br>

ux目前的内核支持Intel x86、Motorola/IBM PowerPC、Compaq(DEC)Alpha、IA 64、S/39 <br>

0、SuperH等处理器体系结构,如果使用这些系列的微处理器作为嵌入式系统的处理器,并 <br>

不是不可能。 <br>

  <br>

  <br>

  <br>

今年的EPF(Embedded Processor Forum)将在六月12日至16日于San Jose CA举行。这次 <br>

论坛上将对嵌入式Linux支持的嵌入式处理器做专门的讨论,关心Linux对嵌入式处理器支 <br>

持的问题。 <br>

3.2 实时支持 <br>

Linux本身不是一个实时系统,Linux的内核并不提供对事件优先级的调度和抢占支持。但 <br>

是可以利用Linux的特性给Linux增加实时调度的能力。这里需要提出的实时系统实现的设 <br>

想虽然在很早以前就提出过,但是仍然是具有创造性的,并且尤其在Linux时代这样的实时 <br>

系统更是显得游刃有余。这种实现方案是双内核系统,即利用Linux内核,同时增加一个实 <br>

时内核,两个内核共同工作,获得别的实时系统所不能达到的优势。 <br>

其实,双内核的解决方案在很早以前就已经提出。大概在20年前,贝尔实验室的开发人员 <br>

就准备开发一种名为MERT的实时操作系统。这种操作系统就准备运行两个内核,一个是实 <br>

时内核,另外一个是分时通用内核。实时内核用来运行实时任务,通用内核用来运行普通 <br>

任务。这种设计方法的优势就在于,实时内核可以利用非实时OS内核的一些优势来开发。 <br>

举个例子说,如果利用实时内核上运行一个实时任务来对外界环境进行数据采集,那么采 <br>

集出来的数据可以通过非实时内核上运行的图形界面显示出来。在系统内部的数据处理实 <br>

时的,显示出来可能就没有必要实时。这样,即可以提高实时系统的可用性,也可以节省 <br>

计算资源,同时将实时系统的一部分任务划分出来,降低了实时内核需要处理的复杂度, <br>

提高了实时的计算效率。 <br>

利用Linux的内核,可以实现一个建立在这个非实时内核基础上的实时内核,这两个内核共 <br>

同工作,形成前面所描述的双内核实时系统。这样得实时内核可以满足短小精悍的要求, <br>

非实时内核又已经如前面所描述的那样的强大,两者结合起来,可以充分发挥出实时系统 <br>

在嵌入式系统中的应用,也可以充分让嵌入式系统满足信息电器时代的要求,开发出强大 <br>



合适的系统。 <br>

双内核的体系结构可以用下面的图来描述: <br>

第四章将介绍的是美国新墨西哥州大学计算机科学系开发的RTLinux。它实现了计算机科学 <br>

家设想的双内核体系结构的实时系统。RTLinux建立在已经成熟并且还在不断升级强大的L <br>

inux内核的基础上,在第四章里面会详细介绍他们的实现机理和开发方法细节。 <br>

3.3 网络支持 <br>

我们可以这样说,Linux是网络的代名词。没有网络,就不可能产生世界各地高手云集的情 <br>

况,也就不可能产生高手们共同开发出来的操作系统——Linux。Linux的产生条件是网络 <br>

,Linux的生存条件也是网络,这就是这一网络操作系统的关键特性。 <br>

Linux内核对网络协议栈的设计是从简洁实用的角度出发,实现出一整套的网络协议模块。 <br>

Linux不仅可以支持一般用户需求的ftp(file transfer protocol)、telnet和rlogin协 <br>

议,还能提供对网络上其他机器内文件的访问(NFS, 网络文件系统)。Linux还可以支持 <br>

SLIP(Serial Line Interface Protocol)和PLIP(Parallel Line Interface Protocol <br>

)协议,使得通过串口和并口线进行连接成为可能。通过AX.25协议,Linux可以提供通过 <br>

无线电进行连接的方式;通过在Linux上开发Novell标准的IPX协议,Linux可以访问Netwa <br>

re网络。如果在Apple机的世界里面,可以通过AppleTalk协议访问Apple的网络。在Windo <br>

ws9x/NT局域网里面,可以通过Samba协议进行Linux和Windows之间的文件共享。通过Apac <br>

he公司开发的免费网络服务器,可以利用Linux系统作为强大的网络服务器,提供Interne <br>

t上电子商务和数据提供服务。 <br>

有关Linux对TCP/IP网络协议的支持请具体参看第五章。 <br>

3.4 GUI开发支持 <br>

    利用Linux的有限资源开发出多窗口子系统,是在嵌入式系统市场中形成竞争实体的一  <br>



  <br>

重要条件。特别是我们实现出双内核的基于Linux实时系统之后,GUI的开发更为方便。这 <br>

里我们提出两种利用Linux进行窗口系统开发的可能方案。 <br>

3.4.1 利用X Windows的便利 <br>

利用Linux本身支持的X windows系统。X Windows是一个在大多数UNIX工作站上使用的图形 <br>

用户界面,它是一种与平台无关的客户/服务器模型,可以让用户在一台机器上打开另外一 <br>

台机器的窗口,而不用考虑客户机的操作系统类型。这种特性使得UNIX和Linux系统上的用 <br>

户和应用程序非常自然的通过网络连接在一起。 <br>

X Windows的编程层次结构是由X Protocol、X Lib、X Intrinsic、Motif/GTK/QT 函数接 <br>

口、应用程序组成的。X Protocol是X用来和X Server进行通讯的方式,X Lib提供一些函 <br>

数集合,通过这些函数提供发送、接受和处理X协议请求的功能。X Intrinsic提供了一个 <br>

窗口管理功能,利用X Intrinsic提供的一个Widget集就可以完成一类特定界面的编写。应 <br>

用程序可以通过Motif/GTK/QT提供的函数接口调用X Intrinsic,也可以利用Motif/GTK/Q <br>

T直接调用X Lib。而Motif/GTK/QT就是用来提供窗口函数库的,通过使用这些窗口函数库 <br>

,可以很方便的写出X Windows的应用程序。 <br>

    使用X Windows开发GUI,因为开发环境成熟,开发工具易用,可以缩短开发时间,降低 <br>

  <br>

发难度。但是,如果应用在嵌入式系统中,我们不得不考虑嵌入式系统的一些限定条件: <br>

嵌入式系统不能使用体积过大的操作系统内核,就是因为需要将系统固化在ROM中或者Dis <br>

k On Chip的Flash ROM上。但是,一个X Lib就需要大概10M ~20M的空间,在一般的嵌入式 <br>

环境都不能满足这样的条件。如果在外观要求较高,而不太关注整个系统的制作费用的条 <br>

件下,采用X Windows作为GUI的开发工具不失为一种好办法。 <br>



3.4.2 利用SVGALib和pThread函数库 <br>

利用SVGALib和pThread函数库可以自行编写一个窗口子系统。不考虑实时的因素,我们可 <br>

以先在Linux内核上使用SVGALib和pThread函数库先编写出来,然后提供必需应用程序接口 <br>

。SVGALib用于提供对SVGA卡的显卡驱动,利用pThread实现消息循环和响应。这样的一个 <br>

GUI系统包括函数库、窗口代码等等大概需要空间为2~3M,加上必要的图像文件资源,占用 <br>

的空间也不会太大。 <br>

实现这个窗口系统,关键技术在窗口元素、消息循环和界面设计上。主要要实现的窗口元 <br>

素是菜单、状态栏、对话框、消息框、快捷键等;对话框控制类型包括静态文本框、按钮 <br>

、单选钮和检查框,组合框等;还需要提供基于对窗口的简单多窗口支持。 <br>

实现消息循环控制机制可以参考Windows系统的消息循环机制。系统管理消息的产生和分发 <br>

,应用程序提供消息回调函数用以实现消息处理。 <br>

整个消息循环机制可以如下设计: <br>

  <br>

3.5 小结 <br>

    这一章中根据我们嵌入式系统的四点需求,介绍了使用了Linux进行嵌入式系统开发工  <br>

  <br>

的原因。从这四个角度,说明使用Linux原因,并且将根据这四点要求开始下面的工作。整 <br>

个毕业设计通过对嵌入式系统的支持贯穿起来,重点放在Linux得实时支持、网络系统的支 <br>

持和利用嵌入式系统开发的工具链的重要部分——Linux内核在线调试环境的搭建上面。 <br>

  <br>

  <br>

-- <br>



紅酥手 黃滕酒 滿城春色尃m澚  <br>

 |風惡 歡情薄 一懷愁緒 幾年離索 <br>

錯 錯 錯 ! <br>

春如舊 人空瘦 満I奂t 捧o綃透 <br>

桃花落 槌f亻w 山盟雖在 鍟\

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -