基于虚拟处理器嵌入式中间件

上传人:M****1 文档编号:484601550 上传时间:2023-09-24 格式:DOC 页数:8 大小:70KB
返回 下载 相关 举报
基于虚拟处理器嵌入式中间件_第1页
第1页 / 共8页
基于虚拟处理器嵌入式中间件_第2页
第2页 / 共8页
基于虚拟处理器嵌入式中间件_第3页
第3页 / 共8页
基于虚拟处理器嵌入式中间件_第4页
第4页 / 共8页
基于虚拟处理器嵌入式中间件_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《基于虚拟处理器嵌入式中间件》由会员分享,可在线阅读,更多相关《基于虚拟处理器嵌入式中间件(8页珍藏版)》请在金锄头文库上搜索。

1、基于虚拟处理器嵌入式中间件引言嵌入式中间是在嵌入式应用程序和操作系统、硬件平台之间嵌入的一个中间层,通常定义成一组较为完整的、标准的应用程序接口。它主要为嵌入式应用软件的开发提供跨操作系统和跨硬件平台,层次化、模块化和可扩展的接口,同时,根据嵌入式应用的编程特点提供必要的编程工具。借助嵌入式中间件,应用程序可以独立于操作系统和硬件平台,使产品的开放性和可移植性更强。有了中间件以后,应用程序不仅可以运行于不同硬件平台,也可以在不同的操作系统上运行,从而在提高开发效率、减少开发成本的同时能够跟上技术的发展,使应用的开发变得更加简捷。1 基于虚拟处理器的嵌入式中间件1.1 虚拟处理器可移植性通常指将

2、某一个操作系统的应用程序移植到新的平台或处理器上。嵌入式中间件的功能是使应用独立于操作系统,独立于硬件平台,所以要求能够建立在不同的操作系统和硬件平台上,与支持具体的应用与平台无关。因此,嵌入式中间件自身必须具有高度的可移植性,使它能够被完全地移植到不同的软硬件平台上,包括库以及所有其它部分。基于虚拟处理器(Virtual processor)的嵌入式中间件,通常将所的代码编译到一个虚拟处理器而不关心具体的目标硬件平台来实现这一特性。嵌入式中间件被设计成运行在一个虚拟的处理器上,一个理想的32位RISC(精简指令集计算机)小端(little-endian)系统。基于这种系统编写代码时,就像在真

3、正的处理器上编写一样。当将应用代码转换成准备在目标处理器上执行的本地代码时,只需要一个翻译器;因而,无论是将嵌入式中间件移植到一个新的处理器、一个新的平台还是兼而有之,都只需要编写不同的界面接口即可实现其完全的移植。1.2 移植模型基于虚拟处理器的嵌入式中间件自身具有完全的可移植性,能够提供通用的驱动,支持在不同的平台上运行。影响基于虚拟处理器的嵌入式中间件可移植性的因素可抽象为三个组件,即翻译器、CPU隔离接口和平台隔离接口。利用翻译器(translator),应用代码可以被转换为相应的本地代码而运行。翻译器将应用代码映射为对等的本地代码,包括指令选择、寄存器分配和指令调度。由于嵌入式处理器

4、的模式可能不同,所以嵌入式中间件应能提供基于小端(little-endians)处理器和大端(big-endians)处理器的翻译器,以使所有代码和数据,包括文件和网络通信数据,都可以在不做任何修改的情况下,从一个小端处理器的系统搬移到其它大端处理器的系统中;同时,翻译操作可根据静态或动态地执行。此外,基于虚拟处理器的嵌入式中间件的可移植性还依赖于另外两个组件。其一是CPU隔离接口CII(CPU Isolation Interface),它将操作系统与处理器的细节隔离。CII包含了实现FIXUP(定位)操作的函数及其它与CPU相关的操作。另一个组件是平台隔离接口PII(Platform Iso

5、lation Interface)。通过提供一个抽象的中间层,PII将操作系统和设备驱动程序与Platform的细节隔离。PII提供一套函数,可以“虚拟地”访问中断、异常、内存管理、时钟等等。由此抽象出来的基于虚拟处理器的嵌入式中间件结构如图1所示。最值得注意的就是,基于虚拟处理器的嵌入式中间件这一抽象模型的建立,可以通过PII和CII提供一种十分有效的机制,可以使中间件在“Hosted Mode(宿主模式)”下运行于操作系统上。运行于宿主模式的嵌入式中间件,其平台隔离接口(PII)中部分函数的实现,包括用于设置或访问中断、异常、时钟等函数,均须借助“宿主操作系统”提供的接口实现。1.3 移植

6、实现嵌入式中间件环境的建立过程是将一个系统(中间件)移植到另一个系统硬件平台+实时操作系统的过程。基于虚拟处理器的嵌入式中间件的移植实现可分为两步:移植到一个新的处理器,需要编写翻译器以及CPU隔离接口CII;移植到一个新的平台,需要重新实现平台隔离层PIL(Platform Isolation Layer)。平台隔离层指所有的使中间件适合一个具体平台而编写的代码。这一层由平台隔离接口PII和平台具体的设备驱动程序所组成。1.3.1 处理器移植处理器的移植涉及到对翻译器、CPU隔离接口的代码重新实现。(1)翻译器在进行处理移植时,真正需要实质改变的代码是翻译器。不同的处理器有着特定的翻译器。一

7、个翻译器可以为任一类型处理器而创建。或者是一个数字信号处理器(DSP),一个微处理器或者一个微控制器。(2)CPU隔离接口CII是一个集合名词。它包含在内核和处理器之间提供接口的代码以及搜集中间件在其上运行的处理器信息的代码。中间件内核自身不需重新编写。CII的接口包括独立处理器指令集的接口、任务切换期间调度程序和处理器之间起中介调停作用的接口以及用于栈操作的接口等。1.3.2 平台移植平台移植需要重新实现平台隔离层,包括平台隔离接口和具体的设备驱动程序。如果支持Java语言,还须实现Java原始接口中。(1)平台隔离接口PII是一个函数集合,允许内核和设备驱动程序访问硬件和软件所提供的功能。

8、对于内核,PII提供了一系列函数,用于系统启动和关闭、分配和翻译内存、锁定和解锁内存以及建立异常处理程序。设备驱动程序可以访问的PII函数有:用于安装和卸载中断处理程序、物理地址空间和进程地址空间的映射和解除映射、获得逻辑地址的物理址以及调用一个宿主操作系统的系统调用等一系列函数。(2)设备驱动程序设备驱动程序提供广泛的用于和硬件接服务(比如I/O端口)以及软件服务(比如与宿主操作系统的运行时接口)。设备驱动程序为每个设备系列提供了应用程序接口(API)。对于那一系列的每个设备API保持相,但是每个设备驱动程序包含了具体平台和处理器的代码。这样,任何一个设备驱动程序的实现对应用程序是透明的,应

9、用程序不用知道设备驱动程序如何提供它的服务。应用程序要使用某个设备驱动器,必须首先安装它。所有的应用程序将一个设备驱动程序的用加入到一个叫作装配表的查找表u34920表中,同时有一个字与这个引用相关联。这样,可以编写一个新的设备驱动程序,代替装配表中原来的版本。只要赋予它和原来设备驱动器相同的名字,应用程序就可以访问它,而意思到这一变化。(3)Java原始接口Java原始接口JNI(Java Native Interface)是一个标准的编程接口,用来编写Java方法以及Java应用程序中使用Java虚拟机实现的原始方法库的二进制兼容性。JNI的实现首先需建立两个.h文件:host-md.h和

10、host-hlp.h。它们为JNI机制提供了宿主平台的关信息。第一个文件定义了原始的类型,比如8、16、32、64位整数;第二个文件定义了一系列与OS无关的函数,用来分配内存,启动进程和使用互斥变量等,然后为宿主主平台重新编译实现jni.c文件。2 Intent中间件系统及其移植实现2.1 Intent系统Intent系统是一个典型的基于虚拟处理器的嵌入式中间件。它是一个专为连接家庭、可移动和专业网络的数字装置设计的多媒体内容平台;具有功能强大、二进制可移植的特性,可广泛运行于从低功耗装置到工作站等各种设备。Intent内部各系统组伯按照可移植程度分为两大类可移植性强的组件和可移植性弱的组件。

11、Java组件和多全库等可移植组件组成完全可移植的Intent媒体平台;而其它与硬件和下层宿主操作系统直接相关的组件,如翻译器(translator)、设备驱动程序等,与Intern的OS核心(kernel)一起组成Intent系统的底层操作系统elate。Intent系统的体系结构如图2所示。Elate是一个具有可移植性的实时操作系统,它的移植通过将所有的代码编译到一个虚拟处理器来实现,而不关心具体的具体硬件平台。Elate的核心就是这个虚拟处理器VP(Virtual Processor)。它被定义为一个32位字长,RISC(精简指令集计算机)结构的小端系统。基于这种系统编写代码时,就像在真正

12、的处理器上编写一样。当将可移植的代码转换成准备在鞭上执行的目标处理器的本代码时,只需一个翻译器tool。Tool是elate中的概念,是用定义的虚拟处理器语言VP Code所编写的程序,与函数或方法相类似。与大多数操作系统不同,elate的绝大多数代码了基于VP编写的,这些代码以静态或运动的方式被转换为真实处理器的本地代码。里的“真实处理器”指令在运行elate的处理器。这便利大段的代码在系统平台间转移成可能。Elate向Intent内核及其它应用提供了与CPU、外围设备等硬件的资源接口,是Intent系统软硬件的界面。Intent系统可广泛运行于数字电视机顶盒、智能手机、PDA以及其它嵌入式

13、数字设备。以下将以数字电视机顶盒为例,介绍Intent的具体实现。2.2 Intent系统的移植实现数字电视机顶盒是一种能够让用户在同有模拟电视上观看数字电视节目,进行交互式数字化娱乐、教育和商业化活动的消费类电子产品。其基本功能是接收数字电视广播节目,时具有所有广泛和交互式多媒体应用的功能。机顶盒系统由硬件平台和软件系统组成,可将其分为4层,从底向上分别为底层硬件、实时操作系统平台、中间件、应用软件。底层硬件提供机顶盒的硬件平台;实时操作系统平台提供操作系统内核以及各种硬件驱动程序;中间件(middleware)将应用软件与依赖于具体的硬件平台;应用软件包括本机存储的应用和可不载的应用。 这

14、里,所研发的机顶盒系统以PowerPC为微处理器,PSOS为实时操作系统平台,Intent系统作为中间件层。系统中,PSOS操作系统作宿主操作系统;Intent系统以寄生模式建立,通过其高效的Java虚拟机以及媒体平台,实现机顶盒的交互功能。Intent的移植实现同样分成两个步骤;移植到新的处理器和移植到新的平台。 2.2.1 移植到PowerPC由于Intent提供了广泛的翻译器,用来将一个VP代码的tool转换成一个本地tool,因此对于系统翻译器只需选择针对PowerPC的翻译器,同时根据PowerPC的特点,作部分修改。对Intent系统CII部分的移植主要包括;对独立处理器指令集的接

15、口tool、任务切换期间调度tool、处理器之间起中介调停作用的tool以及用于栈操作的tool进行针对PowerPC的重新编写,这一层的代码涉及到指令级调用。2.2.2 移植到具体平台在宿主平台(PSOS+设备)上,Intent的PII层将和PSOS接口。宿主模式下,VP代码编写的tool需要调用宿主端的函数,以访问宿主的库函数和系统调用,包括系统内存的管理、中断的条开关闭操作,安装时钟中断等操作,均需要调用宿主操作系统的函数。Intent中提供的一个跨系统调用的机制叫作Opentool。Opentool提供了一种机制,它使Intent端的tool在不考虑calling invention等

16、环境因素的前提下,可以调用宿主端的函数,并正确地传递参数。反之亦然。使用这种机制。VP代码只要像调用普通tool一样,调用类似以下的tool:!/!!(out)其中platform可以是任意的名字,不过一般都取为平台的名字;function name与宿主系统端函数一一对应,对应关系可改动;in、out为函数的输入、输出,即可实现Intent与PSOS的接口。不过须重新实现opentool.c,编写main.c或boot.c以及重新编写用于系统启动和关闭、分配和释放内存、锁定和解锁内存、建立异常处理程序以及用于设备驱动程序的一些接口函数;同时,还须实现Java原始接口(JNI)。Intent提供了通用设备驱动程序(如键盘、鼠标、图形显示等),用于和硬件接口。因此须为每个设备选择具体的设备驱动程序,时安装它。对于特

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

当前位置:首页 > 学术论文 > 论文指导/设计

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号