视听新闻
中国视听网 视听行业门户网站  服务热线:400-6789-360    免费注册 | 会员登录 | 繁體中文版 | 设为首页 | 加入收藏 | 3G | RSS | 联系我们 | 网站地图 
中国视听网
首页 | 新闻中心 | 产品 | 企业 | 访谈 | 商情 | 会议 | 展会 | 招标 | 案例 | 技术 | 专题 | 人才 | 搜索 | 论坛
视听新闻
 当前位置:中国视听网[民用版] > 视听新闻 > 机顶盒应用案例 > Java虚拟机用于数字电视机顶盒
Java用于数字电视机顶盒研究与实现(1)
中国视听网[民用版]机顶盒资讯 更新时间:2010-1-22 15:38:58 编辑:温情 [ ]
内容导航:

Java用于数字电视机顶盒研究与实现(1)
  引言

  随着有线广播电视网向数字化、网络化、产业化方向发展,利用有线电视网络作为传输平台的数字电视机顶盒除了能够让用户在现有模拟电视机上观看数字电视节目之外,广播和交互式多媒体应用功能的要求也应运而生,互动电视成为数字电视发展的方向。众多程序员熟悉的为网络广泛运用的Java语言能很好地满足机顶盒一些服务应用的要求,因此提出了包含Java虚拟机的数字电视机顶盒中间件的系统架构,该虚拟机用来执行Java应用程序,并且中间件将应用程序和底层操作系统、硬件细节隔离开,使上层的数字电视的服务应用不必考虑过多的底层细节。本文主要介绍了J2ME中主要用于数字电视领域的CDC的移植,其中又着重介绍了本地方法(nativemethod)的实现过程。



  结构及工作原理


图1 Java虚拟机的工作过程


  Java虚拟机工作原理

  Java虚拟机处于机器和编译程序之间,在任何平台上都提供给编译程序一个共同的接口。Java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行。

  Java虚拟机的主要任务是装载class文件并且执行其中的字节码。Java虚拟机包含一个类装载器,它可以从程序和API中装载class文件。字节码由执行引擎来执行,具体过程如图1所示。

  Java虚拟机结构

  类装载器的体系结构是Java虚拟机在安全性和网络移动性上发挥重要作用的一个方面,图中所示的类装载器可以包含多个类装载器的子系统,Java应用程序能够在运行时决定需要安装的类,并且将被不同的类装载器装载的类存放在不同的命名空间。

  执行引擎处于Java虚拟机的核心位置,它的行为由指令集所决定,其主要作用就是解释字节码(即运行经过编译后的Java程序的class文件),不同的执行引擎实现可能非常不同。由软件实现的虚拟机的执行引擎分为一次性解释字节码、即时编译器和自适应优化器,由硬件芯片构成的虚拟机用本地方法执行Java字节码,它的执行引擎是内嵌在芯片里。

  Java虚拟机相当于一个堆栈计算机,它在指令间传送信息时不使用任何物理寄存器,而使用堆栈的帧来表示方法的状态、字节码的操作对象、方法的参数空间及局部变量的空间,它的“程序计数器”为一个伪寄存器,是当前所执行指令的字节码数组的一个指针。

  Java实现方法

  Java有两种实现方法:Java方法和本地方法。Java方法是由Java语言编写,编译成字节码,存储在class文件中。本地方法是由其他语言(比如C,C++,或者汇编语言)编写的,编译成和处理器相关的机器代码,保存在动态连接库中,格式是各个平台专有的,它是联系Java程序和底层主机操作系统的连接方法。Java方法与平台无关,但是本地方法却不是,运行中的Java程序调用本地方法时,虚拟机装载包含这个本地方法的动态库,并调用这个方法。通过本地方法,Java程序可以直接访问底层操作系统的资源,使程序和特定的平台相关,一个本地方法接口——Java本地接口(JNI)使得本地方法可以在特定的主机系统的任何一个Java平台上运行。

  J2ME中的CDC移植的解决方案

  我们选用的要移植的Java虚拟机是Sun公司提供的J2ME对于数字电视领域CDC配置,该虚拟机是针对Linux的软件实现(用C语言编写的虚拟机,该虚拟机也称为CVirtualMachine,简称CVM)。Java虚拟机规范并没有强求Java虚拟机必须支持任何特定的本地方法接口,但是Sun公司提供了本地方法接口(JavaNativeInterface),是为移植所用。Java程序通过调用本地方法和主机交互。

  Java虚拟机

图2 Java虚拟机的位置


  虚拟机处于嵌入式操作系统OS20上,因此Sun公司提供的Java虚拟机中与底层操作系统相关的操作都应该替换为OS20的内核函数。因此将Sun公司提供的CDC移植到OS20需要完成一些工作,比如:C语言中关于基本数据类型的数据位的修改,关于线程的创建机制(OS20为任务),关于线程之间的同步、互斥,关于动态连接的实现,关于本地方法的实现等,本节主要介绍关于本地方法的实现过程。

  本地方法

  解释器处理字节码时,与给定字节码有关的动作的语义、执行字节码的相关动作大多是从堆栈中获得其操作数,并将其结果送回堆栈中。典型的情况下字节码是带有参数的,这些参数在字节码流中紧跟在字节码自身之后。

  在虚拟机解释字节码过程中,执行引擎会不时遇到请求本地方法调用的指令,虚拟机负责试着发起这个本地方法的调用。本地方法是Java虚拟机指令集的一种可编程扩展,运行这个本地方法就是Java虚拟机对这条指令的执行。

  本地方法函数调用

  为了增加虚拟机的性能,加快其速度,解释器在处理一些字节码时调用的本地方法函数用汇编实现了将Java栈转换为C栈,然后在C堆栈上实现函数的调用。Linux下是用独立的汇编语言程序invokeNative_i386。S实现函数CVMjniInvokeNative(),我们采用在C里面嵌入汇编的形式来实现该函数。

  该函数的形参有7个,完成的主要功能是将由实参传递来的部分数据通过直接或者运算后得到本地方法的参数,然后压入本地栈,通过汇编来实现本地的C函数调用。实参传递过来的7个数据包含JNI环境指针(env)、本地方法的函数指针(nativecode)、Java栈指针(args)、本地方法的描述符(tersesig),Java栈的参数总数(argssize)表示静态或非静态方法的类对象标志(classobject)及用于存储返回值的一个指针变量(returnvalue),其中env要作为第一个本地方法的参数传递,并且nativecode也要传递到本地方法来实现本地方法的正确调用。

  J2ME中的CDC移植

  由于Linux有多个通用寄存器,在实现该函数的代码中充分运用了如esp、ebp、esi等寄存器,但是OS20提供的可操作的寄存器只有3个通用寄存器Areg、Breg、Creg和1个工作指针寄存器Wptr(相当于堆栈指针),在实现过程中,我们用在C函数中设立局部变量来代替Linux的通用寄存器,通过手动调整工作栈指针来实现本地方法的调用,具体实现过程如图3所示。

  当进入汇编函数时,工作区指针为Wptr,实参、状态寄存器和指令指针寄存器的值全部自动入栈,然后是我们定义的代替Linux寄存器的局部变量自动入栈,此时的Wptr自动移到Wptr′,利用OS20的汇编指令,手动将实参传递过来的参数通过计算得到本地方法参数的个数,然后将本地方法所需的参数依次压栈,最后再手动调节工作区指针实现本地方法的成功调用。这里我们先将本地方法函数指针和1个标志位flag(0x10101010)入栈,原因有两个:

页码: 1 2  下一页

更多相关:  
文章来源:中国有线电视
内容导航
网友评论
图片新闻
相关搜索:
机顶盒
新闻导读
品质好才是真功夫 吴京代言甲盾品牌
京迷本色 京彩纷呈 甲盾京迷
世博会上投影机的价值在“飙升”!
激光微型投影能否成为领跑者?
微型投影机何种技术占优势?
德浩科技2010年新产品发布福建站邀请函
美迪亚搬迁新址 气象更新
高清播放机前景:市场细分成大趋势
家庭影院离产业化还有多远<br>家庭影院
家庭影院离产业化还有多远-家庭影院VS
MP4之父面对面访谈 掘金MID市场新热点
乔传秀:长虹PDP为国家经济作出多方位贡
专访上海冠艺电子科技有限公司销售总监
成都菲斯特科技:立民族志气、创世界名
访成都域虹科技有限公司副总经理张东明
专访深圳雅图公司市场部经理张亦敏
独家专访深圳市优视集团董事长金德新
访UT斯达康主任结构师/首席科学家杨景
天柏吕品:机顶盒要走软硬分离之路
周高平:用心做事 真诚合作 创造共赢
世博会上投影机的价值在“飙升”!
激光微型投影能否成为领跑者?
微型投影机何种技术占优势?
高清播放机前景:市场细分成大趋势
家庭影院离产业化还有多远-家庭影院VS
逐鹿电视机新领域 3D标准成争夺焦点
投影聚焦:丽讯思维 全球共享
科视——让世博会铭记的经典
3D产业政策“胎动” 今年挺电影明年扶电
东芝退出投影机市场的“内幕”?
宁波市鄞州区公共资源交易中心中控/讲台
万安县教育体育局投影机/投影幕/视频展
嘉应学院投影机/投影幕/吊架/讲台/会议
福建信息职业技术学院中控/电动幕/投影
北碚区委组织部、静观医院所需电视机和
黄山学院投影机采购
关于投影仪、PC机、服务器等招标采购公
吉林大学投影机招标
长沙职业技术学院多媒体设备采购
河北建筑工程学校投影机采购
Marsh选择DP 15000流明亮度精密投影机
丽讯投影机助力杭州三大国家级博物馆
纽曼NM-PL01亲民价格享受百寸高清投影
酷乐视(COOLUX)LED微投实战KTV娱乐包房
索尼VPL-FX40工程机助力广西大学
索尼VPL-FW41宽屏投影机服务高端商务市
傲龙微晶屏闪亮成都会馆MBA总裁班同学会
傲龙微晶屏登陆成都会馆
寻找索尼生活榜样-沈阳
杰森牌镜面幕助力上海世博会墨西哥馆
网媒聚焦
2009汽车影音 专业音响集结 音响企业地图体验
2010年美电贝尔新品推广会深圳站圆满举行
王者归来,神州天乐,36年音质制造专家
Todun数字会议系统助博鳌国际旅游大会
CREATOR第9届国际大屏幕系统集成展预告
2010南京扩声技术学术研讨会圆满成功!
科达助力中铁十局第五工程公司远程沟通
合肥大型音乐节顶尖设备营造梦幻舞台
CREATOR AV新品推介会(沈阳站)
斯沃福集团风采现北展
投影网2010年5月24日至28日一周要闻
睿联微型投影电视疯狂促销—购买立省500元
唯瑞荣获中国新媒体“十大创新品牌奖”
睿联打造联通互动投影橱窗营业厅,iphone手机
EPSON联手福克斯 TW450捆绑《阿凡达》
纤毫毕现 、演绎2.35:1奢华境界,TW5500问世
伟景行打造“数字圆明园”闪耀第十三届科博
纽曼携数款投影机齐齐亮相第十三届科博会
创维光电亮相福田教育局主办的电教设备展
中国普天与中兴通讯毗邻参展2010信息通信展
LED大屏幕 LED显示屏 LED大屏幕论坛
新世纪联手崑山市政府斥资2亿美元兴建LED新
晶科投10亿建LED高端研发基地
LED电子显示屏的构造
迈锐光电近日完成山东聊城130平米大屏
LED转战国内狼烟起“专利池”应对技术壁垒
深圳将组建国内首家光景设计和光环境检测中
大屏、广视角、LED 价值对比分析
新传媒时代 LED占领地球
中上游是中国LED产业快速发展之软肋
设为首页 | 商务信息 | 视听资讯 | 本站动态 | 关于中国视听网 | 网站地图 | 网站RSS | 视听3G | 友情链接
本站网络实名:中国视听网 | 视听网 | 视听产品报价 国际域名:http://www.av-china.net
版权所有 1999 中国视听网 邮箱:web@av-china.com 电话:+86-755-33019199(十八线) 传真:+86-755-33010311
深圳网络警
察报警平台
公共信息安
全网络监察
经营性网站
备案信息
不良信息
举报中心
中国文明网
传播文明