·
网站地图
·
关于我们
·
RSS订阅
·
联系我们
·
高级搜索
·
收藏本站
首页
信息家电
|
家用电器
|
行业要闻
|
安防电子
|
ad2
主页
>家用电器>
Java虚拟机应用于数字电视机顶盒的研究与实现
性教育 >
Java虚拟机应用于数字电视机顶盒的研究与实现
来源:kappa女视频下载-中国消费电子 | 更新日期:2008-11-18 | 人气:673323
ad3
关键字:
性教育,,
为了促使{相
关关键字1}">朝着基于{相关关键字
1}的中间件标准DVB。MHP (多媒体家庭平台)发展,简略介绍的体系结构,从由Sun公司提供
的基于Linux的J2ME到嵌入式操作系统OS20的移植过程,重点介绍本地方法调用的移植实现。实验证明,该方法能够使简单的{相关
关键字1}程序在">{相关关键字
1}上成功运行。
引 言
随着有线广播电视网向数字化、网络化、产业化方向发展,利用有线电视
网络作为传输平台的">除了能够让用户在现有模拟电视机上观看">节目之外,广播和交互式多媒体应用功能的要求也应运而生,互动电视成为">{相关
关键字1}发展的方向。众多程序员熟悉的为网络广
泛运用的语言能很好地满足一些服务应用的要求,因此提出了包含{相关关键字
1}的">中间件的系统架构,该用来执行{相关关键字
1}应用程序,并且中间件将应用程序和底层操
作系统、硬件细节隔离开,使上层的">的服务应用不必考虑过多的底层细节。本文主要介绍了J2ME中主要用于">领域的CDC的移植,其中又着重介绍了本地方法(native method)的实现过程
。
结构及工作原理
工作原理
处于机器和编译程序之间,在任何平台上都提供给编译程序一个共同的接口
。源程序经过编译器编译后变成字节码,字节码由解释执行,将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行。
{相关
关键字1}的主要任务是装载class文件并且执行其中的字
节码。包含一个类装载器,它可以从程序和API中装载class文件。字节码由执行引擎来执行,具体过程如图1所示。
图1 {相关关键
字1}的工作过程
结构
类装载器的体系结构是在安全性和网络移动性上
发挥重要作用的一个方面,图中所示的类装载器可以包含多个类装
载器的子系统, 应用程序能够在运行时决定需要安装的类,并且将被不同的类装载器装载的类存放在不同的命名空间。
执
行引擎处于的核心位置,它的行为由指令集所决定,其主要作用就是解释字节码(即运行经过编译后的程序的class文件) ,不同的执行引擎实现可能
非常不同。由软件实现的的执行引擎分为一次性解
释字节码、即时编译器和自适应优化
器,由硬件芯片构成的用本地方法执行字节码,它的执行引擎是内嵌在芯片里。
相当于一个堆栈计算机,它在指令间传
送信息时不使用任何物理寄存器,而使用堆栈的帧来表示方法的状态、字节码的操作对象、方法的参数空间及局部变量的空间,它的“程序计数器”为一个伪寄存器,是当前所执行指令的字节码数组的一个指针。
实现方
法
{相关关键字
1}有两种实现方法:方法和本地方法。方法是由 语言编写,编译成字节码,存储在class文件中。本地方法是由其他语言(比如C,C++,或者汇编语言)编写
的,编译成和处理器相关的机器代码,保存在动态连接库中,格式是各个平台专有的,它是联系程序和底层主机操作系统的连接方
法。方法与平台无关,但是本地方法却不是,运行中的{相
关关键字1}程序调用本地方法时,装载包含这个本地方法的动态库,并调用这个方法。通过本地方
法, 程序可以直接访问底层操作系统的资源,使程序和特
定的平台相关,一个本地方法接口——本地接口(JNI)使得本地方法可以在特定的主机系统的任何一个平台上运行。
J2ME中的CDC移植的解决方案
我们选用的要移植的{相关关键
字1}{相关关键
字1}是Sun公司提供的J2ME对于">{相
关关键字1}领域CDC配置,该{相关关键字
1}是针对Linux的软件实现(用C语言编写
的,该也称为C Virtual Machine,简称CVM) 。规范并没有强求必须支持任何特定的本地方
法接口,但是Sun 公司提供了本地方法接口( Native Interface) ,是为移植所用。程序通过调用本地方法和主机交互。
图2 的位置
处于嵌入式操作系统OS20 上,因此Sun公司提
供
的中与底层操作系统相关的操作都应
该替换为OS20的内核函数。因此将Sun公司提供的CDC移植到OS20需
要完成一些工作,比如: C语言中关于基本数据类型的数据位的修
改,关于线程的创建机制(OS20为任务) ,关于线程之间的同步、互斥,关于动态连接的实现,关于本地方法的实现等,本节主要介绍关于本地方法的实现过程。
本地方法
解释器处理字节码
时,与给定字节码有关的动作的语义、执行字节码的相关动作大多是从堆栈中获得其操作数,并
将其结果送回堆
栈中。典型的情况下字节码是带有参数的,这些参数在字节码流中紧跟在字节码自身之后。
在解释字
节码过程中,执
行引擎会不时遇到请求本地方法调用的指令,负责试着发起这个本地方法的调用。本地
方法是指令集的一种可编程扩展,运行这个本地方法就是对这条指令的执行。
本地方法
函数调用
为了增加的性能,加快其速度,解释器在处理一些字节码时调用的本地方法函数用汇编实现了将栈转换为C栈,然后在C堆栈上实现
函数的调用。Linux下是用独立的汇编语言程序invokeNative_i386。 S实现函数CVMjniInvokeNative () ,我们采用在C里面嵌入汇编的形式来实现该函数。
该函数的形参有7个,完成的主要功能是将由实参传递
来的部分数据通过直接或者运算后得到本地方法的参数,然后压入本地栈,通过汇编来实现本地的C函数调用。实参传递过来的7个数据包含JN I环境指针(env) 、本地方法的函数指针(native code) 、栈指针(args) 、本地方法的描述符(terse sig) , {相
关关键字1}栈的参数总数(args size)表示静态或非静态方法的类对象标志(class object)及用于存储返回值的一个指针变量(return value) ,其中env要作为第一个本地方法的参数
传递,并且native code也要传递到本地方法来实现本地方法的正确调用。
J2ME中的CDC移植
由于Linux有多个通用寄存器,在实现该函数的代码中充分运用了如esp、ebp、esi等寄存器
,但是OS20提供的可操作的寄存器只有3个通用寄存器Areg、Breg、Creg和1个工作指针寄存器Wptr (相当
于
堆栈指针) ,在实现过程中,我们用在
C函数中设立局部变量来代替Linux的通用寄存器,通过手动调整工作栈指针来实现本地方法
的调用,具体实现过程如图3所示。
图3 栈到本地
栈的转换
当进入汇编函数时,工作区指针为Wptr,实参、状态寄存器和指令指针寄存器的值全部自动入栈,然后是我们定义的代替Linux寄存器的局部变量自动入栈,此时的Wptr自动
移到Wptr′,利用OS20的汇编指令,手动将实参传递过来的参数通过计算得到本地方法参数的个数,然后将
本地方法所需的参数依次压栈,最后再手动调节工作区指针实现本地方法的成功调用。这里我们先
将本地方法函数指针和1个标志位flag(0x10101010)入栈,原因有两个:
①当随后我们手动调节工作指针Wptr′到Wptr"时,工作栈已由先前的嵌套汇编的函数进入到了要调用的本地方法的C函数,因此先前的函数的局部变量在
此时无效,也就是说此时如果用以前实参传递过来的本地函数指针调用本地的函数肯定不会成功,因此要把这个函数指针先手动保存起来。
②flag的设置的原因是:本地
方法的参数的个数不是固定的,而OS20 所提供的用汇编调用
函数在回到函数入口点时只弹出Wptr"指向的4 个单元的内容,因此多余的参数出栈操作也必须通过调节Wptr手动完成,通过向下移动Wptr查
找flag标志,再调节Wp tr到Wtpr+2即可正确地回到汇编函数。当本地方法的参数完全手动入栈后就可以手动调节工作区指针Wptr而进入到调用的本地函数,函数返回后的第一件事是保存在寄存器中的函数的返回值到return value,恢复
工作区指针Wptr,并将本地方法的返回值类型作为嵌入汇编
的函数的返回值,此时就完成了由栈到C栈的转换,并成功调用本地方法。
结 论
通过对Sun公司下载的CDC代码的修改与编写,对CDC中的加载的类做了一
些裁减,并且将线程化的解释器改为一次性解释字节
码的单线程解释器简化程序,成功地生成了在上可以运行简单的程序的。
推荐文章
·
西门子正式退出计算机事业
·
PC业驱动力 惠普海尔电脑加速行业渠道细分
·
谷歌手机发布 群雄逐鹿智能手机市场
·
评论:谁会买“0元笔记本”
·
NVIDIA显卡缺陷殃及全部笔记本厂商
·
手机电池存在监管漏洞 亟须质量紧箍咒
·
全球电脑数量6年内将翻番
·
宏基将在笔记本电脑中大力推广Linux
·
新普科技:笔记本电池短缺将持续到明年二季
·
日本半导体厂商控制着消费电子
·
意法半导体下一代解码器芯片强化高清机顶盒的性能和价值
·
基于μC/OS-II嵌入式系统的低功耗开发
·
蓝光碟机进入中国市场能否燃起蓝色火焰?
·
联发科模式颠覆手机市场格局
·
惠普计划在未来三年裁员2.46万人
·
调查:IT电信日益融合 手机病毒威胁将越来越猖獗
·
IDF 2008:让移动互联High起来
·
评论:“黑手机”的机会主义
·
手机电视争搭TD便车 运营商探讨运营模式
热门文章
·
全球首台触摸式波轮洗衣机诞生的背后
·
三星将出两亿美元全球砸广告促销消费电子
·
冰箱产品标准修订报批 引进"变温室"概念
·
广电总局再发三张手机电视牌照 短期不增发
·
EVD和CBHD两大联盟或将展开诉讼大战
·
飞利浦首推支持杜比Pro Logic®立体声解码的单片
·
广电退出标准测评 手机电视标准大考受阻
·
我国彩色激光电视技术获大突破技术链完备
·
ST推出具数字录像和加密功能单片高清电视方案
·
新规出台:电子垃圾私自拆解最高罚50万元
·
SAA7111A在实时图像采集系统中的应用
·
惠普决战服务之巅
·
凯雷拟联合海尔竞购GE家电 海尔资金问题有望解决
·
长虹:等离子生产线未有大碍 奥运前下线
·
三星高画质电视接收机采用Oak TeraLogic 8xx芯片组
·
无线社区支持 DVB-H 开放式标准,鼓励新兴数字电视市场的竞争与创新
·
白电小家电成为"电子眼"监管对象(组图)
·
传微软有意竞购SA思科交易泡汤?
·
三网融合下的有线电视数字终端发展
}
关于我们
|
网站地图
|
致公考人
|
网站申明
|
申请链接
|
留言反馈
|
联系我们
Copyright © 2007 kappa女视频下载-中国消费电子. All Right Reserved.
本站中文版权所有
kappa女视频下载-中国消费电子
内容均来源于互联网,如有侵权,敬请联系我们,我们尽快解决!