在vxWorks上使用JAVA

來源:互聯網
上載者:User

發信人:   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,虛擬機器的大小是以KB度量的。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應用程式。    

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.