奴才是什么意思| 虚热是什么意思| 怀孕日期是从什么时候开始算| 招采是什么意思| 得瑟是什么意思| 小孩手指头脱皮是什么原因| 木丑念什么| 水星为什么叫水星| 景五行属什么| 慷慨什么意思| 黄精配什么提高性功能| 出家人不打诳语是什么意思| 生是什么生肖| 仓鼠吃什么食物| 李子有什么功效| 月经前腰疼是什么原因| 三鹿奶粉现在叫什么| 五月二十一号是什么星座| 什么样的月光| 嘴巴周围长痘痘是什么原因| 100聚酯纤维是什么面料| s和m是什么| 脸上长痘痘是什么原因引起的| 检查脖子挂什么科| 金球奖什么时候颁发| 热射病是什么| 鸳鸯戏水是什么意思| 唐玄宗叫什么| 硬化是什么意思| 植树节是什么时候| 仄言是什么意思| 西门子洗衣机不脱水是什么原因| bape是什么品牌| 自由意志是什么意思| 女性长胡子是什么原因| 流鼻血挂什么科| 公租房是什么| 喘息性支气管炎吃什么药| 肚子胀胀的是什么原因| 经变是什么意思| 飞的第一笔是什么| 梦见钓到大鱼是什么意思| 北戴河是什么海| 一个口一个犬读什么| 头顶疼是什么原因引起的| 大腿后侧疼痛什么原因| 汗臭是什么原因| 智障是什么意思| 反酸是什么感觉| 拉肚子吃什么消炎药好| pa是什么意思| 减肥吃什么菜最好| 虚有其表的意思是什么| 果丹皮是用什么做的| 9月份什么星座| 白带黄绿色是什么炎症| 老克勒是什么意思| 晕车吃什么药| 肚子经常胀气是什么原因| 老生气会得什么病| 螯合剂是什么| 什么是应力| 什么招牌| 什么是数字货币| 属猪的守护神是什么菩萨| 母亲节买什么礼物| 什么是尿素| 老舍被誉为什么称号| 生长发育科检查些什么| 宫颈管短有什么症状| 反应性细胞改变是什么意思| 中级会计什么时候报名| 电压mv是什么意思| 嗓子疼不能吃什么| 胃胀吃什么中成药| 婴儿老打嗝是什么原因| 碳水化合物是什么| 肝硬化挂什么科| 来龙去脉指什么生肖| 做梦梦见别人怀孕是什么意思| 子宫内膜异位是什么原因造成的| 1210是什么星座| hiit是什么意思| 双肺间质性改变是什么意思| 鲢鱼吃什么食物| 感官世界讲的什么| 宫缩是什么感觉| 梦见洗碗是什么预兆| 身上发热是什么原因| 孔子的真名叫什么| 转氨酶是什么意思| 吃海带有什么好处| 草是什么意思| 丹毒病是什么原因引起的| 1954属什么生肖| 碘酊和碘伏有什么区别| 月经来了腰疼是什么原因| 立场是什么意思| 时尚是什么意思| bang什么意思| 双子座和什么星座最配| 宝贝是什么意思| 增强免疫力的针叫什么| 苡字取名寓意是什么| 梦见杀人是什么意思| 肝阳上亢吃什么药| 天恩是什么意思| 什么是二手烟| 彩虹代表什么生肖| 飞天是什么意思| 小弟一阵阵的疼什么原因| 梦见白菜是什么预兆| 贵妃是什么意思| 火车头是什么意思| 字字珠玑什么意思| gln是什么氨基酸| 饭后烧心是什么原因引起的| 东南大学什么专业最牛| 乳腺结节三级是什么意思| 贫血四项是指什么检查| 一张纸可以折什么| 石蜡是什么| 尿肌酐高是什么原因| 半夜饿了吃什么不长胖| 手指甲软薄吃什么补| 眩晕看什么科| 黄体可能是什么意思啊| 十二月二十三是什么星座| dm什么意思| scc什么意思| 肉苁蓉有什么功能| 肿瘤出血意味着什么| 雄黄是什么| 孕妇梦见棺材是什么征兆| 支气管炎什么症状| 食用葡萄糖是什么| 针眼是什么样子的图片| 气蛋是什么病| 星座是什么意思| 龙利鱼是什么鱼| 胃口疼是什么原因| 188什么意思| 食物发霉是什么菌| 2月16日什么星座| 伊索寓言有什么故事| 喉咙干吃什么药| 经常按摩头皮有什么好处| 牙龈肿痛吃什么消炎药| 为什么会尿道感染| 大林木命适合做什么行业| 冷暴力是什么意思| 山楂不能和什么一起吃| dha中文叫什么| 海胆是什么动物| 意思是什么意思| 月经来了同房会导致什么后果| 养肺补肺吃什么药最好| 三铵复合肥是什么| 尿的颜色有点红褐色是什么原因| 心脏病吃什么食物好| 身份证上x代表什么| k3是什么| 不加热血清反应素试验是什么| 香蕉和什么一起吃能减肥| 痛经喝什么药| 号外是什么意思| 水生木是什么意思| 火车票无座是什么意思| 吉数是什么生肖| 什么是婚姻| 小孩口腔溃疡是什么原因引起的| 阿司匹林什么时候吃| 子宫内膜c型什么意思| 什么是非处方药| 鸡蛋黄发红是什么原因| 肾出问题了有什么症状| 葡萄球菌感染是什么原因引起的| 唐伯虎属什么生肖| 泽去掉三点水念什么| 医生停诊是什么意思| 心什么肉什么| mh是什么意思| 荷花什么时候种植| 血管检查什么方法最好| 苹果为什么叫苹果| iris是什么意思啊| 胸口堵得慌是什么原因| 花生不能和什么食物一起吃| 应届毕业生是什么意思| 血红蛋白偏低的原因和危害是什么| 立秋那天吃什么| 分家是什么意思| 什么的森林| 今年是什么属相| 喉咙干痒咳嗽吃什么药| 精神分裂是什么| 8月29日是什么星座| 血糖高吃什么水果好能降糖| 嘴角烂了是什么原因| 阴虚有什么症状| 吃维生素c有什么好处| 冰糖是什么做的| 7月份适合种什么菜| 梵文是什么意思| pc是什么意思| 金色配什么颜色好看| 勃起困难是什么原因造成的| 尿酸高多吃什么食物好| 降压药什么时候吃最好| 怀孕什么不能吃| 万宝龙手表什么档次| 皮肤一碰就红是什么原因| 树根有什么作用| gala是什么意思| 托腮是什么意思| 什么是超七水晶| 清炖排骨汤放什么调料| 情人和小三的区别是什么| 异地结婚登记需要什么证件| 肚子胀气吃什么食物好| 时辰宜忌是什么意思| mm代表什么单位| 孙子的儿子叫什么| leu是什么意思| 27岁属相是什么生肖| 匚读什么| pof是什么意思| 绝代双骄是什么意思| 怀孕阴道有什么变化| 温文尔雅是什么意思| 火加同念什么| 梦见摘丝瓜有什么预兆| camel什么意思| 喉咙痒吃什么药| 火影忍者什么时候出的| 椁是什么意思| 急性乳腺炎是什么原因引起的| 为什么喝酒| 中文是什么意思| 伏特加兑什么好喝| 12月23是什么星座| 春指什么生肖| 阴茎硬不起来吃什么药| 铁锭是什么意思| 长期低血糖对人体有什么危害| 酸麻胀痛痒各代表什么| negative是什么意思| 少白头是什么原因| 液金是什么| 泡妞是什么意思| 你把我当什么| 九零年属什么生肖| 中国最厉害的武器是什么| 正常人尿液是什么颜色| 睡觉时头晕是什么原因| ms是什么单位| 女生胸疼是什么原因| 儿童贫血吃什么补血最快| 牙根疼吃什么药最好| 结缔组织病是什么病| 炎性结节是什么意思| 拉肚子低烧是什么原因| 巨蟹座什么性格| 卷发适合什么脸型| 百度

新闻中心

EEPW首页 > 消费电子 > 设计应用 > 基于数字电视机顶盒的Java虚拟机的移植

陕西省西咸新区开发建设管理管委会关于印发

——
作者: 时间:2025-08-05 来源:电子技术应用 收藏
百度 互联网极度普及时,“去中心化”、“多中心化”趋势,就将不以任何人意志为转移的呈现出来。


姚 莉,张 萍,于鸿洋
(电子科技大学 电子工程学院, 成都610054)
 
  摘 要:为了增强的网络交互能力,介绍了以及它在上的移植与实现。简要叙述了普通DVB-C有线技术,介绍了的概念、背景以及JavaVM的层次结构。重点介绍了JavaVM在数字电视机顶盒上的移植过程。运行结果表明JVM在机顶盒上移植成功。
  关键词:数字电视 机顶盒

  数字电视是当前IT产业的热点,作为一项即将在全国范围内开播的信息服务,它融合了计算机、多媒体、通信网络等众多技术。随着数字电视近几年的发展,交互式电视越来越受重视。交互式电视可以为用户提供丰富的互动功能,包括电子节目指南、视频点播、股票信息、互动游戏等。目前,数字电视机顶盒是基于有线电视网络传输的模拟电视机接收数字电视节目和数字信息的主要接入平台。要实现交互式电视的功能,数字电视中间件技术是必不可少的条件,它已成为交互式电视的核心技术。我国已制定了数字电视中间件标准,利用该标准开发具有自主知识产权的中间件系统是非常必要的。
  本文以目前较为成熟的数字电视机顶盒技术为参考背景,提出了一种将中间件JavaVM移植到数字电视机顶盒上的方案,详细介绍了整个方案的原理以及具体实现过程。
1 有线数字电视机顶盒技术
  有线数字电视机顶盒结构如图1所示。

图1有线数字电视机顶盒结构图

  普通(民用)有线数字机顶盒是传统HFC网络与传统模拟电视之间的数字桥梁。在HFC网络的前端,数字复接器将各种已编码的数字电视节目信号与数据广播信号复接,经过组帧、QAM调制和载波调制成DVB-C信号流,通过HFC网络向用户广播。用户则通过数字机顶盒锁定电视节目频道,经过QAM解调、解复用、解压缩、解密和收费控制等过程完成节目接收。机顶盒的核心模块(如STi5512)是数字电视解码器,它是一个嵌入式系统,一般有以下硬件模块:MIPS CPU、解调器、解复用器、A/V解码器、模拟A/V编码器等。
  本方案中选用ST公司的Sti5516芯片,该芯片的CPU为ST20-C2。
2 中间件技术
  从硬件技术看,CPU速度越来越高,处理能力越来越强;从软件技术看,应用程序的规模不断扩大,特别是因特网的出现,使计算机的应用范围更为广阔,许多应用程序需在网络环境的异构平台上运行。这一切对新一代软件的开发提出了新的需求。在这种分布异构环境中,通常存在多种硬件系统平台(如PC、工作站、小型机等),在这些硬件平台上又存在各种各样的系统软件(如不同的操作系统、数据库、语言编译器等),以及多种风格各异的用户界面,这些硬件系统平台还可能采用不同的网络协议和网络体系结构连接。如何把这些系统集成并开发新的应用是一个非常现实而困难的问题。
  为解决分布异构问题,提出了中间件(middleware)的概念。
  中间件是在应用程序与操作系统、硬件平台之间嵌入的一个中间层,通常定义成一组较为完整的、标准的应用程序接口。它主要为应用软件的开发提供跨操作系统、跨硬件的平台及层次化、模块化和可扩展的接口,同时,根据嵌入式应用的编程特点提供必要的编程工具。
  借助中间件,应用程序可以独立于操作系统和硬件平台,使产品的开放性和可移植性更强。有了中间件,应用程序不仅可以运行于不同硬件平台,也可以在不同的操作系统上运行,从而在提高开发效率、减少开发成本的同时能够跟上技术的发展,使应用的开发变得更加简捷,也为应用程序提供了一个相对稳定的高层应用环境。
  对于数字电视机顶盒,数字电视中间件是指位于数字电视机顶盒内部实时操作系统与应用程序之间的软件部分,它将应用程序与底层的操作系统、硬件细节隔离,使应用不依赖具体的硬件平台。它在数字电视中的位置如图2所示。

图2 中间件在数字电视中的位置

3 Java与
3.1 Java简介
  对于大多数开发语言,需要编译或解释。但是Java语言与那些需要编译或解释的语言比起来较特殊。通过编译器, 首先程序被翻译为一种称为Java bytecode的中间语言,一种在Java平台上被解释器解释的平台独立代码。解释器解释计算机上所有的Java bytecode指令。一旦编译完成,在程序每次执行时,系统都会发生一次解释过程。图3演示了该过程。

 

图3 Java程序的执行过程

  每个Java解释器,不管是一个开发工具或者是一个运行applet小程序的web浏览器,都是Java虚拟机的实现形式。Java bytecodes 使得“一次编写,随处运行”这种时髦观点成为可能。bytecodes 能够运行在任何一种Java虚拟机形式上,这就意味着只要计算机上安装有Java虚拟机, 那么同样的一个Java程序可以运行在 Windows 2000系统、 Solaris 工作站或者一个Mac系统上。
3.2 Java平台
  一个平台是程序运行的硬件或者软件环境。刚才已经提到了一些比较流行的平台,如Windows 2000、 Linux、Solaris和Mac OS。大多数平台可以认为是硬件和操作系统的联合体。 Java与其他平台不同,因为它只是一个运行在其他硬件平台基础上的软件平台。Java平台有两个组件:JavaVM和JavaAPI。图4为Java平台结构图。

图4 Java平台结构图

3.3 J2ME平台
  Java发展至今已推广到各种平台,针对不同应用平台SUN公司开发了四个版本的Java运行环境,其中如PDA、STB这样的硬件运算能力不高且存储有限的各式消费性电子产品专门提出了J2ME版本。
  J2ME定义了一套Java的运行环境和开发环境,它包含安装在各类消费性电子设备中的Java虚拟机和特别为了各类消费性电子设备中的核心类库。而J2ME的主要应用则可以分为两大类:个人移动设备和共享固定设备。前者在Configuration层使用CLDC,其所应用的终端设备包括移动电话等,在人机接口上比较精简且内存需求较小。后者在Configuration层使用CDC,如车用导航、娱乐设备、数字电视机顶盒等。图 5为J2ME平台结构。

图5 J2ME平台结构

4 移植与实现过程
  笔者所做的工作就是将JavaVM的CDC&Foundation移植到前述框图所描述的数字电视机顶盒上,见图6。

图6 移植方案

4.1方案
  我国的数字电视中间件标准明确指出中间件系统要采用Java虚拟机,提供Java应用程序标准接口,使用Java语言编写交互式应用程序。根据该标准,结合有线电视机顶盒的硬件环境和操作系统等特征,提出了基于有线电视机顶盒的数字电视中间件的实现方案。
4.2 方案的实现
  采用SUN公司在其主页上公布的免费的Java虚拟机软件实现代码,经过各方面的修改移植到现有的数字电视机顶盒上。
4.2.1 环境搭建
  (1)通过修改源码中的build目录下的相关make文件,使得虚拟机源代码的运行环境得以正确搭建在机顶盒上,为下一步的代码调试奠定基础。主要表现在编译器名称以及路径、文件后缀名和JDK工具包路径。为了减少初期移植工作的难度,相应地简化修改了一些生成Java虚拟机可执行代码的选项。
  (2)根据现有数字电视机顶盒具体的硬件配置,主要根据flash的大小修改了相应的硬件配置文件。
4.2.2 代码调试
  在正确搭建了编译调试环境后,做代码的调试。主要有以下几个方面的修改和代码重写:
  (1)与操作系统相关的修改。数字电视机顶盒采用ST公司提供的嵌入式实时操作系统OS20,而源代码中是基于Linux操作系统。修改关于task结构的定义和使用。另外在OS20操作系统内核代码中的关于支持可变参数的定义也与Linux中的不同,也要做相应修改。
  (2)与CPU有关的修改。主要是将源代码中用X86汇编指令写的汇编文件CVMjniInvokeNative.S用自行设计的C2汇编指令实现。由于ST20-C2提供的寄存器较少,在实现中采用了局部变量完成数据的存储和传递。
  (3)调试中的简化修改。屏蔽了多线程,给调试带来了莫大的方便。去掉动态加载功能,使需要使用的类都是预先编译并被本地化成romjava.c。
4.2.3 测试与运行结果
  JavaVM实际上是系统的一个进程,系统会像对待普通进程一样,为它分配必要资源,包括进程优先级、系统需要的内存空间等。JavaVM作为系统的进程,将依照自己优先级,参与系统的进程调度。JavaVM系统与其它进程一起,共享包括处理器资源在内的系统资源。为此,笔者在main()函数中创建一个任务来启动javavm这个任务。将整个修改好的源代码在新的编译环境下编译连接成可执行代码,通过JTAG口下载到机顶盒目标板中运行。
  Java虚拟机的“输入”是“hello.java”,经过Javac编译后生成类文件“hello.class”。如果代码调试成功就应该在显示终端打出“hello world”字样,这是Java虚拟机解释字节码的结果。说明基于CDC&Foudation配置的Java虚拟机移植成功。
  本论文提出的在有线数字电视机顶盒环境中实现数字电视中间件的方案采用Java技术作为核心,充分体现了Java技术的优点,使交互式电视的应用开发更加简捷方便。该方案实现了Java平台(CDC)的基本功能,为进一步研究和实现Java应用程序标准接口提供了软件平台。
  当然目前的这个CDC实现还存在部分问题,需要进一步改进以提高其稳定性,在此基础上,可以增加个人简表和Java TV API为Java应用程序的开发提供完整的环境。
  以上介绍了嵌入式中间件JavaVM的基本概念及其抽象模型,给出了它在数字电视机顶盒的移植与实现。通过嵌入式中间件JavaVM,使不同平台之间的应用程序代码快速移植成为可能。嵌入式中间件可以适用于不同软硬件平台;能够独立于平台和处理器,能移植于不同操作系统与不同微处理器体系结构,从而使上层的应用程序移植性更强。我们相信,嵌入式中间件的广泛使用将使嵌入式应用也能像Java语言一样,可在各式各样机器、操作平台的环境中开发应用软件——“一次编译,到处运行”。
参考文献
1 探矽工作室.深入嵌入式Java虚拟机.北京:中国铁道出版社,2003
2 Connected Device Configuration and Foundation Profile. Ver-sion 1.0.1 Java(tm) 2 Platform.
  Micro Edition,2003
3 CDC: An Application Framework for Personal Mobile Devi-ces. JavaTM 2 Platform. Micro
  Edition,2003 



评论


相关推荐

技术专区

关闭
讣告什么意思 tga是什么 ca是什么意思 pcr是什么 肝部出现腹水是什么原因
什么药治肠炎效果最好 四个木是什么字 hps是什么意思 眼睛痒是怎么回事用什么药 月经推迟什么原因引起的
天天做梦是什么原因 泡汤是什么意思 oem贴牌是什么意思 吃什么性功能持久 沾花惹草是什么生肖
舌头挂什么科 甲减长期服用优甲乐有什么危害 杳冥是什么意思 指甲盖凹凸不平是什么原因 缺钾有什么症状
女人的排卵期一般是什么时候hcv9jop0ns7r.cn 女生吃避孕药有什么副作用hcv7jop5ns3r.cn 清宫后需要注意什么dayuxmw.com 奥肯能胶囊是什么药520myf.com 1618是什么意思hcv7jop4ns7r.cn
意难平是什么意思aiwuzhiyu.com 梦见偷别人东西是什么意思hcv8jop3ns7r.cn 疾厄宫是什么意思imcecn.com 舌根部淋巴滤泡增生吃什么药hcv9jop7ns9r.cn 牛肉丸子配什么菜好吃hcv9jop1ns6r.cn
梦见自己牙齿掉了是什么意思hcv9jop2ns7r.cn 脾胃虚弱有什么症状hcv9jop0ns1r.cn 电解质饮料有什么作用hcv9jop1ns7r.cn 土字生肖有钱收是什么生肖liaochangning.com 总是耳鸣是什么原因hcv8jop1ns1r.cn
肺气不足吃什么药hcv9jop3ns2r.cn 二月二十一是什么星座hcv9jop1ns3r.cn leep术是什么手术hcv7jop4ns5r.cn 说话快的人什么性格hcv8jop0ns3r.cn 不骄不躁是什么意思hcv8jop1ns9r.cn
百度