Java在嵌入式系统中的解决方案
垃圾收集,并希望避免稍后在更关键时段进行收集。
C) JVM的系统开销
我们已经论述了许多JVM的内置特点,比如图形和网络,它们使得你的Java程序更快上市。所有这些特点的负面是JVM的内存开销。因为JVM是一个整块(要达到Java的可移植的目的,你必须完整的采纳),JVM的内存占用量不能减少。现在的JVM最少需要2MB以上的内存。
但是如果你的Java程序也在使用一些消耗内存的功能,由于一个JVM中有那么多的功能,各个Java应用程序就能写的小一点。如果你建立的是一个从网络上动态下载并运行多个程序的系统,那么这将是个很大的优点。但Java仍然不具备可配置性和可伸缩性,而这些是嵌入操作系统一直以老字号自居的特点。
D)硬件访问
Java实现可移植性的安全性的方法也意味着它缺乏直接同硬件接口的能力。JVM仅仅是一个虚拟的机器,一个对硬件的软件抽象,该抽象仅仅使连接是直接的。虚拟机控制与实际硬件的接口,而我们只能和虚拟机打交道。
但这并非无法逾越的限制,很多C程序使用内嵌汇编来规避性能上的瓶颈,所以Java程序也能使用C来获得对硬件的直接访问。
让Java和C一起工作有两种方式。第一、可以使用本地方式,它们是用C/C++或另一种语言写的,但当调用时,则装入与JVM同样的内存空间,运行于同样的环境。因为它们被编译成机器码,本地方式运行更快并能直接访问硬件。本地过程与Java代码之间通过套接来彼此交流,就像网络中通信端点使用的套接一样。在你选择了混合语言方法后,Java的与平台无关和安全特点就没有了。
可以考虑将前面提到的Java处理器作为软件JVM的解释器部分作为一种硬件实现方案。Java程序能在这些处理器上直接运行并操纵硬件,要注意Sun必需加一些特殊目的的指令给这种语言才能直接与这些处理器一起工作。
E) 语言尚不够成熟
Java于1996年5月发布,几个月就有了beta版。第一个主要修订版,Java Development Kit(JDK)1.1在一年以后开发出来,以标准的程序设计语言角度来看,Java还很年轻,也很粗糙。实际上,所有通用语言,都要几年时间才能够成熟到能可靠的写出作为产品的应用程序的程度。
在其进一步发展中,Sun公司分了三个步骤来促进Java成为一种通用语言和计算机平台。首先,用Java编程实现现存的商业和企业的一些功能活动,诸如电子邮件、日历和字处理程序。在这些方面,Java将与传统的编程语言和传统的编程方法竞争。其次,把Java提供给企业,使他成为一种编写内部应用程序的方法。信息科学部门常常要用一种必须编译的(因而是针对具体平台的)语言来产生客户程序,因此由于平台不同而编译和维护不同的版本。如使用Java,信息科学部门只需编写和维护一种版本。最后一步,是为传统嵌入式设备应用,比如移动电话、机顶盒以及打印机定义Java API以及语言功能。
Java开发的编程工具也仍在发展之中。有几个厂家提供编译器和开发工具,如Symantec、Microsoft以及Sun公司。Sun不再是JVM和JIT的仅有选择,其他几个供应商的产品也很有竞争力,这些公司在开发检测和调试工具上较慢。市场上有了一些初步的产品, Parasoft的Jtest软件自动为Java模块生成检测案例,而Numega的Jcheck为JVM中的程序行为提供一定的可见性。
目前仍然没有完善的交叉调试解决方案,即那种传统上被嵌入系统开发者用来处理目标平台上程序的方案,你很可能必须用C/C++来写你的程序中针对硬件的部分。不管怎样,你最好用一个C/C++交互调试器来调试那些代码,并在你的目标系统上用弹出对话框,保持记录文件,或其他类技巧来调试你的Java。
4、总结
由上可见,Java的嵌入式应用是排在Sun公司日程的最后的,Sun在继续为这些用途发展此语言,但对这方面的发展会次于桌面及企业用途。
- SN2005学习系统 数字语音室解决方案(05-19)
- 以可编程DSP架构应对TD-SCDMA以及TD-LTE带来的设计挑战 (02-14)
- 基于DSP的电源解决方案(06-13)
- FPGA PCIe 视频采集(Video Capture)解决方案分析(06-06)
- 大联大友尚集团推出基于Realtek的智能插座解决方案(10-22)
- Wind River携手Cavium推出新的多核软件解决方案(09-12)
