现在的位置: 首页 > 综合 > 正文

在vxWorks上使用JAVA

2012年10月12日 ⁄ 综合 ⁄ 共 4043字 ⁄ 字号 评论关闭

发信人:   shengb   (天际征鸿),   信区:   Embedded                
  标     题:   在vxWorks上使用JAVA[1]  
  发信站:   BBS   水木清华站   (Mon   Jul   22   08:51:50   2002)  
   
  前两天闲着没事,想在vxWorks上编译java程序玩玩,因此找了sun的j2me,经过一番折  
  腾,总算能在vxWorks上看见可爱的"Hello   World"。  
   
  1.     J2ME简介  
          Java平台包括Standard版、Enterprise版和Micro版。Micro版,也就是所谓的J2ME,  
  是专门设计为供内存量小和处理能力较低的移动设备作为Java开发平台使用。  
          然而,由于移动设备覆盖的范围非常广,而且有着各种互不相同的硬件配置,因此  
  不太可能为所有的移动设备提供一种普遍适用的开发平台。所以J2ME定义了两种类型的  
  规范,configurations   和profiles。  
  1.1     Configuration  
          J2ME通过对Configuration的抽象来处理大量千差万别的移动设备硬件功能。J2ME  
  configuration定义了特定设备可用的虚拟机和低级API,同时提供相应的开发基础。目  
  前可用的Configuration有两种,即连接设备配置CDC(Connected   Device   Configuration  
  )和连接有限设备配置CLDC(Connected   Limited   Device   Configuration)。  
  1.1.1     连接设备配置  
          CDC应用于相对内存量较大、处理器能力较强的移动设备。CDC规范采用了内存优化  
  的虚拟机,也就是所谓的CVM,通过它提供等同标准JVM的特性。按照Sun的文档说明,    
  CDC针对新型PDA、智能通讯设备和机顶盒之类的高端设备。为了能够受到CDC支持,移动  
  设备必须至少具备以下条件:  
                  用于CVM和Java   API库的2   MB内存。  
                  32位微处理器或者控制器。  
                  可用网络连接,最好是高带宽连接。  
  1.1.2     连结有限设备配置  
          CDC的要求有利于昂贵的移动电话、IR扫描仪或类似产品。CLDC则主要针对那些更轻  
  便、更便宜、不能满足CDC要求的设备。  
          CLDC采用了更轻型的虚拟机,设计为在较低内存环境下运行。这种JVM的参考实现也  
  就是所谓的KVM,虚拟机的大小是以千字节度量的。CLDC   的设备需求如下:  
                  最低160KB的内存,其中128KB用于KVM和运行时库  
                  最低16位25-MHz处理器  
                  有限的用户界面功能  
                  没有(或者间歇的)低带宽网络连接  
          由于受到严格的内存容量限制,KVM因此缺乏一些完整JVM所提供的特性,这就是说,  
  KVM在如此低内存要求下不得不在浮点数学计算、反应和对finalizers类的支持等方面对  
  性能折中。使用CLDC的开发者在编译程序之后必须预先采用J2ME开发工具包所提供的一  
  种检查工具对他们的源代码进行校验。  
  1.2     profile  
          如果说配置为应用程序提供了基础,那么profile则提供了应用程序的框架。profile  
  定义了一整套J2ME应用程序可用的API类而且专门针对给定配置创建。Sun推出了2种可用  
  的参考J2ME   profile:基础(Foundation)和移动信息设备profile   MIDP(Mobile   infor  
  mation   Device   Profile)。  
          基础profile主要用于CDC配置,因而其虚拟机几乎等同于标准的虚拟机。这意味着,  
  使用基础profile的开发人员必须访问完整实现的J2SE特性集。  
          MIDP连同功能较低的CLDC配置一道为开发今天的移动设备应用程序提供了你最可能用  
  到的Java平台。MIDP支持J2SE类库的有限子集而且为在CLDC配置上使用定义了定制的用户  
  接口和输入/输出类。  
          一般来说,J2SE代码无须或者很少修改即可采用CDC和基础profile运行。然而,由于  
  主机硬件受到限制,CLDC和MIDP   profile只提供了很有限的功能集合。因此它J2SE应用程  
  序不大可能在不加修改的情况下就运行在这类平台上,除非它把自己限制在两种平台的  
  API交集之内(严重地限制了其功能)。因为CLDC的要求对应了今天大多数手持设备的功  
  能,所以任何J2SE应用软件常常需要修改才能运行在给定的设备上  
          Sun公司的J2ME支持两种嵌入式系统,嵌入式Linux以及Wind   River的vxWorks实时系  
  统。  
   
  Top

7 楼tonkeycn(I Un known...)回复于 2002-07-22 17:30:56 得分 0

发信人:   shengb   (天际征鸿),   信区:   Embedded                
  标     题:   在vxWorks上使用JAVA[2]  
  发信站:   BBS   水木清华站   (Mon   Jul   22   09:14:26   2002)  
   
          J2ME软件采用j2me_cdc-1_0-fcs-src-ar-22_Jan_2001.zip,该压缩包内自带  
  vxWorks5.4   PENTIUM的BSP,所使用的网卡为3Com   10/100   PCI   NIC(3C90x)  
  主机环境:  
  (1)Java   2   SDK,   SE,   v1.3或更新  
  (2)Tornado   2.0   development   system  
  (3)Solaris   7   OS或更新  
  (4)SPARC   hardware  
  (5)128   MB   RAM   (推荐256   MB)  
  目标机环境:  
  (1)Pentium   hardware  
  (2)VxWorks   5.4   OS  
  (3)至少32   MB   RAM  
   
  注意事项:  
  (1)j2me   CDC自带的sysEl3c90xEnd.c驱动程序在编译时有许多未定义的宏,因此建议  
  用Tornado   II的替换掉;  
  (2)在Solaris   7   OS下$WIND_BASE/target/h/arch/下没有simnt目录,但是在文件中  
  用到了该目录下的一些文件,因此建议从PC下拷贝一个到该目录下。  
  (3)在编译时make建议使用gnumake,且版本至少为3.74,也可以用Tornado   II自带的  
  make。  
  (4)主机目标机建议在同一网络中  
   
   
   
  发信人:   shengb   (天际征鸿),   信区:   Embedded                
  标     题:   在vxWorks上使用JAVA[3]  
  发信站:   BBS   水木清华站   (Mon   Jul   22   09:29:25   2002)  
   
  编译前准备工作:  
  (1)解压缩j2me_cdc-1_0-fcs-src-ar-22_Jan_2001.zip,假设为$J2ME  
  (2)编辑$J2ME/cdcfoundation/build/vxworks/config_vxworks.mk,设置相应环境变  
  量:  
                  Target   IP   address  
                  Host   IP   address  
                  Host   name  
                  Base   directory   for   Tornado   software   (wind_base)  
  (3)修改J2SDK的环境变量,将其指向实际机器中J2SDK所在的位置  
   
  编译j2me  
  (1)在$J2ME/cdcfoundation/build/vxworks/目录下,键入gnumake   CVM_DEBUG=true  
  (2)在编译完成后,继续编译vxWorks镜像,键入gnumake   download_image  
  编译完成后,在$J2ME/cdcfoundation/build/vxworks/target/的PC-boot和PC/default  
  目录下均生成vxWorks以及vxWorks.sym文件。只有PC/default下的包含了CVM的目标代码  
  cvm.o。因此需要下载PC/default/vxWorks。  
  (3)制作启动软盘。如果已经有系统启动软盘,就可以不做。  
   
  启动目标机下载vxWorks  
          在目标机控制台下,进入到$J2ME/cdcfoundation/build/vxworks/bin目录。  
  ->sp   runJava,"-Djava.class.path=../testclasses.zip   HelloWorld"  
  这时,在屏幕上就可以看见可爱的HelloWorld.字符  
   
  用户应用程序  
   
  (1)javac   –bootclasspath=$J2ME/cdcfoundation/build/vxworks/btclasses.zip   /  
    $J2ME/cdcfoundation/build/vxworks/lib/cdc.jar   Hello.java  
  (2)jar   –cf   hello.jar   Hello.class  
  (3)在目标机控制台,  
  ->   sp   runJava,”-Djava.class.path=<AppDir>/hello.jar   Hello”  
  或在windSh,  
  ->   runJava,”-Djava.class.path=<AppDir>/hello.jar   Hello”  
  呵呵,这个时候再看见“Hello   World”,觉得这个时候觉得比任何时候都可爱。  
  Hello.java即为普通的J2SE应用程序。    

抱歉!评论已关闭.