基于ST20 嵌入式系统的 Java 虚拟机研究与移植.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:6 大小:192KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

基于ST20 嵌入式系统的 Java 虚拟机研究与移植.pdf

基于ST20嵌入式系统的Java虚拟机研究与移植.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

获取更多权威电子资料请登陆www.eepw.com.cn基于ST20嵌入式系统的Java虚拟机研究与移植分析了开放源码的Java虚拟机Kaffe的结构、运行机制,并针对DVB(DigitalVideoBroadcast)数字机顶盒软件架构中对基于Java虚拟机的MHP(MultimediaHomePlatform)中间件研发的需求。研究了将Kaffe移植到Sti5516处理器和其专用OS20操作系统的关键技术,给出了相应的移植方案。对深入了解MHP在数字机顶盒中的应用给出了研究方向和基本思路。1引言随着现代信息技术的迅猛发展,电视数字化步伐加快了。从一开始的模拟电视到现在的数字电视,不仅大大提高了电视节目的质量,也推动了电视数字化的进一步发展。在各种数字视频广播标准中,欧洲的DVB(DigitalVideoBroadcast)标准使用比较广泛,它为在同一信道中传输视频、音频、数据提供了一种灵活、高效的方式,可以通过卫星、电缆和地面信道传输高质量的电视节目。同时基于DVB的数据广播标准也能满足人们对于宽带数据业务的要求,如证券信息服务、电子节目、MP3音乐下载、电子邮件、网页浏览等,在现代信息技术领域应用极为广泛。图一数字机顶盒架构从图一我们可以看到,一个完整的数字机顶盒由硬件平台和软件系统组成,可以将其分为4层,从底向上分别为硬件、底层软件、中间件、应用软件。硬件提供机顶盒的硬件平台;底层软件提供操作系统内核以及各种硬件驱动程序;应用软件包括本机存储的应用和可下载的应用;中间件是一种将应用程序与底层的操作系统、硬件细节隔离开来,使应用不依赖于具体的硬件平台的软件环境。这样用户可以在任何厂家的硬件平台上进行应用软件开发,和应用软件下载。而不必介意任何底层的有关信息,保证了机顶盒的开发专业化。这种获取更多权威电子资料请登陆www.eepw.com.cn分层的思想在现代系统设计中十分常见,如大名鼎鼎的TCP/IP协议。中间件通常由各种虚拟机来构成,如HTML虚拟机、JavaScript虚拟机、Java虚拟机[1]等。现在广电行业倾向于DVB-MHP(多媒体家庭平台)中间件标准。DVB-MHP基于开放性的Java程序语言,具有软硬件兼容性好、可移植成本低、二次再开发功能强等优点,是一种很有发展前途的中间件技术标准。可以相信,Java在数字视频广播中的应用将越来越多,我们有必要研究Java技术核心—虚拟机,包括其结构、运行机制及虚拟机移植到数字机顶盒平台的关键技术。本文面向采用ST(意法半导体公司)Sti5516芯片的数字机顶盒平台,将基于数字电视播放(DigitalVideoBroadcast,DVB)的多媒体家庭平台(MultimediaHomePlatform,MHP)规范[2]进行中间件平台分析,重点研究开放源码的Java虚拟机---Kaffe在其中的作用和相关的移植技术。2平台介绍2.1硬件平台数字机顶盒硬件平台基于ST公司的芯片Sti5516[3],Sti5516芯片集成了CPU内核ST20-C2、音/视频MPEG-2解码器、PAL/NTSC/SECAM编码器等。开发板上有8MB的共享内存和16MB的外部内存,4MB的Flash,并采用实时处理的嵌入式操作系统OS20。2.2软件平台一个典型的适用于嵌入式的Java运行环境包括以下组件:1.一个Java虚拟机。用来将独立于平台的Java字节码解释成目标机本地机器码,并执行动态类加载。这可以采取解释执行或实时编译执行(JIT)的形式。两者的不同点就在于字节码的执行速度;因为JIT避免了重复解释以前执行过的程序块。2.一个标准Java类库集,以字节码的形式存在。如果应用程序并不引用任何类库,那这些类库就并不一定要求存在。3.任何类库或虚拟机所需的本地方法(JNI)。这些函数是由其它高级语言所写,并和Java虚拟机一起预编译,链接。这些函数被用来执行处理器相关或Java无法直接实现的功能。4.一个多任务操作系统,用来提供Java线程及线程同步机制的底层实现。获取更多权威电子资料请登陆www.eepw.com.cn5.一个垃圾回收线程。垃圾回收周期运行或当动态内存池不能满足分配请求时运行,用来申明那些已经被分配但不再被应用程序所使用的内存。Kaffe是一个完整的Java实现,它由3部分组成:遵从PersonalJava1.1规范的Java类库[4],Java1.1虚拟机和本地动态或静态链接库。Kaffe虚拟机源码按以下子目录组织:kaffe---包括了解释器与J