
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于st20嵌入式系统的java虚拟机研究与移植 随着现代信息技术的迅猛进展,电视数字化步子加快了。从一开头的模拟电视到现在的,不仅大大提高了电视节目的质量,也推进了电视数字化的进一步进展。在各种数字视频广播标准中,欧洲的dvb(digital video broadcast)标准用法比较广泛,它为在同一信道中传输视频、音频、数据提供了一种灵便、高效的方式,可以通过卫星、电缆和地面信道传输高质量的电视节目。同时基于dvb的数据广播标准也能满足人们对于宽带数据业务的要求,如证券信息服务、节目、mp3音乐下载、电子邮件、网页扫瞄等,在现代信息技术领域应用极为广泛。图一 数字架构从图一我们可以看到,
2、 一个完整的数字机顶盒由硬件平台和软件系统组成,可以将其分为4层,从底向上分离为硬件、底层软件、中间件、应用软件。硬件提供机顶盒的硬件平台;底层软件提供操作系统内核以及各种硬件驱动程序;应用软件包括本机存储的应用和可下载的应用;中间件是一种将应用程序与底层的操作系统、硬件详情隔离开来,使应用不依靠于详细的硬件平台的软件环境。这样用户可以在任何厂家的硬件平台上举行应用软件开发,和应用软件下载。而不必介意任何底层的有关信息,保证了机顶盒的开发专业化。这种分层的思想在现代系统设计中非常常见,如大名鼎鼎的tcp/ip协议。中间件通常由各种虚拟机来构成,如html虚拟机、javascript虚拟机、ja
3、va虚拟机等。现在广电行业倾向于dvb-mhp(多媒体家庭平台)中间件标准。dvb-mhp基于开放性的java程序语言,具有软硬件兼容性好、可移植成本低、二次再开发功能强等优点,是一种很有进展前途的中间件技术标准。可以信任,java在数字视频广播中的应用将越来越多,我们有须要讨论java技术核心虚拟机,包括其结构、运行机制及虚拟机移植到数字机顶盒平台的关键技术。本文面对采纳st(公司)sti5516芯片的数字机顶盒平台,将基于数字电视播放(digital video broadcast,dvb)的多媒体家庭平台(multimedia home platform,mhp)规范举行中间件平台分析,
4、重点讨论开放源码的java虚拟机-kaffe在其中的作用和相关的移植技术。2 平台介绍2.1 硬件平台数字机顶盒硬件平台基于st公司的芯片sti5516,sti5516芯片集成了cpu内核st20-c2、音/视频mpeg-2、pal/ntsc/secam等。开发板上有8mb的分享内存和16mb的外部内存,4mb的flash,并采纳实时处理的操作系统os20。2.2 软件平台一个典型的适用于嵌入式的java运行环境包括以下组件:1一个java虚拟机。用来将自立于平台的java字节码说明成目标机本地机器码,并执行动态类加载。这可以实行说明执行或实时编译执行(jit)的形式。两者的不同点就在于字节码
5、的执行速度;由于jit避开了重复说明以前执行过的程序块。2一个标准java类库集,以字节码的形式存在。假如应用程序并不引用任何类库,那这些类库就并不一定要求存在。3任何类库或虚拟机所需的本地办法(jni)。这些函数是由其它高级语言所写,并和java虚拟机一起预编译,链接。这些函数被用来执行处理器相关或java无法挺直实现的功能。4一个多任务操作系统,用来提供java线程及线程同步机制的底层实现。5一个垃圾回收线程。垃圾回收周期运行或当动态内存池不能满足分配哀求时运行,用来申明那些已经被分配但不再被应用程序所用法的内存。kaffe是一个完整的java实现,它由3部分组成:遵从 personal
6、java1.1规范的 java类库,java1.1虚拟机和本地动态或静态链接库。kaffe虚拟机源码按以下子名目组织:kaffe-包括了说明器与jit平台无关部分,以及垃圾回收,动态类加载和java runtime environment其它模块的源代码。config-包括了说明器与jit平台相关部分。它按所支持的处理器来划分子名目,里面存放系统相关代码。package-java类库以及任何它所依靠的本地办法。include-在子名目中提供的本地办法的接口定义。这些接口被平台自立文件所需要。3 kaffe移植的关键技术及计划经过对kaffe深化分析和讨论,笔者已在sti5516平台上胜利地移植
7、了kaffe,并依据dvb-mhp规范,结合机顶盒特定软硬件环境要求,建立了能运行kaffe虚拟机的java应用程序运行平台。下面将移植工作及相应步骤总结如下:3.1 字节码说明器因为kaffe源码中没有映射java字节码处处理器相关的汇编代码块,而是用法c实现了每个字节码。这样就导致字节码说明器的源代码没有一行是处理器相关的。这意味着移植最简虚拟机(无jit)将十分容易:只需要用法交错编译器来编译kaffe/kaffevm子名目下的文件即可。3.2 内部线程kaffe有它自己的内部线程包。换句话说,它维护自己的线程数据结构,并在适当的时候执行线程调度及上下文切换。为了使内部线程包能运行在st
8、20处理器架构上, 需要在config/os20子名目中创建一个threads.h文件。这个文件定义了两个常量和四个宏。这些常量和宏被内部线程包里处理器无关的部分代码所用法。use_internal_threads定义为enable。threadstacksize是一个常量,定义为每个线程堆栈的大小,单位bytes。threnit(ctx * pcontex, void (*func)()执行新线程的上下文初始化。该线程的入口点被func指针所提供。threadswitch(ctx * pnewcontext, ctx * poldcontext)执行实际的上下文切换。threadinfo(c
9、tx * pcontext)在kaffe初始化期间重置囫囵任务控制块。threadframes(thread * taskid, int count)返回活动的堆栈桢个数。3.3 支持软件和其它大多数用c写的程序一样,kaffe依靠于标准c库里的例程。因为st采纳符合gnu规范的gcc编译器,如strcmp(),atoi(),sin()等标准c库函数被支持。除此之外os20提供以下支持:动态内存分配malloc()。尽管java程序员不会挺直调用malloc(),但kaffe虚拟机需要从底层调用内存分配例程来哀求大的内存池。信号。kaffe依靠于与posix兼容的信号实现机制来执行相应的软件中
10、断。而这可以用来唤醒休眠线程和异样句柄。非堵塞i/o接口。和select()相像。3.4 动态类加载器为了在os20操作系统中用法,须修改源代码中平台无关的部分-动态类加载器。它是java运行时环境的一部分,被用来负责加载被调用的办法(methods)。在桌面环境中,与办法相关的字节码被放在类文件中,动态类加载器用法给定的办法名在类路径下的子名目和文件里搜寻。但因为os20操作系统没有文件系统,所以类加载器必需被修改成在内存(ram或rom)中搜寻类文件。为此我们彻低重写动态类加载器。我们采纳了静态查找表装载机制,建立了一个查找表。这个查找表的结构定义如下:typedef structint
11、index;int size;char name;classindextable;这个查找表用来映射类名或办法名到它们在内存中的起始地址。这样就可以用查找表来替代类加载器。即将类型和路径组合为一个唯一的标识, 比如“java string”,组合起来就是“java_string”,然后再利用这个组合的结果检索查找表。利用组合的结果与查找表中每一项的name字段举行字符串比较,直到彻低匹配为止。假如没有任何匹配则解释系统不支持这个类型。匹配上name 后,类装载器将获得index和size的值。index是一张存放全部.class文件起始地址表的索引,按照这个索引就可以找到详细的.class文件
12、的二进制映像的起始地址,而size则是该.class文件的大小。这样按照.class文件存储位置的地址和大小就可以胜利地完成类的装载。3.5 虚拟机启动因为os20操作系统是被gcc编译到主程序中,我们需要将kaffe虚拟机的初始化函数做为主应用程序中的某个任务来运行。kaffe虚拟机的初始化与启动是通过在主程序中运行initializekaffe()函数来完成的。4 测试与结果在主程序中,调用os20操作系统中的系统调用task_create()来将kaffe虚拟机初始化为系统的一个进程。并为它分配须要资源,包括进程优先级、系统需要的内存空间等。依照分配的优先级,参加系统的进程调度。最后,将囫囵修改好的源代码在新的编译环境下编译衔接成可执行代码,通过jtag口下载到机顶盒开发板中运行。kaffe虚拟机的“输入”是“hello.java”,经过编译后生成类文件“hello.class”。运行下载到flash的主程序,在调试终端可以看到“hello world”字样,这是kaffe虚拟机说明字节码的结果。解释基于sti5516芯片的kaffe虚拟机移植胜利。5 结束语以上介绍了java虚拟机kaffe的软件架构,从中我们可以看出,kaffe虚拟机具有较好的可扩展结构模型,是遵循java规范的优良的开放源
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025电子商务知识产权保护与公证服务合作协议
- 二零二五年度班轮运输船舶物资供应合同范本
- 2025担保合同样式:知识产权质押担保协议
- 2025年资源型城市绿色转型发展模式在城市景观设计中的应用报告
- 22025年交通基础设施建设投融资模式创新与区域交通一体化研究报告
- 2023全球生物制药弹性指数
- 汽车行业2025年供应链风险管理与供应链风险管理风险管理控制报告
- 2025年现代农业产业园区开发建设社会稳定风险评估与农业现代化报告
- 文旅融合背景下2025年乡村旅游投资机会与风险分析报告
- 农业灌溉设备节能降耗技术成果鉴定报告2025
- GB/T 18380.11-2022电缆和光缆在火焰条件下的燃烧试验第11部分:单根绝缘电线电缆火焰垂直蔓延试验试验装置
- GB/T 18342-2009链条炉排锅炉用煤技术条件
- GB/T 14502-1993水中镍-63的分析方法
- GB/T 12706.1-2020额定电压1 kV(Um=1.2 kV)到35 kV(Um=40.5 kV)挤包绝缘电力电缆及附件第1部分:额定电压1 kV(Um=1.2 kV)和3 kV(Um=3.6 kV)电缆
- 2023年烟台蓝天投资开发集团有限公司招聘笔试题库及答案解析
- 四川方言词典(教你说一口地道的四川话)
- 企业标准编写模板
- 提高卧床患者踝泵运动的执行率品管圈汇报书模板课件
- 预防出生缺陷PPT
- 感控培训教育制度
- (推荐精选)PPI药理学基础与合理用药
评论
0/150
提交评论