2019亚洲日韩新视频_97精品在线观看_国产成人精品一区二区_91精品网站在线观看

淺析ARM9平臺KVM移植微電子論文范文

來源:期刊VIP網(wǎng)所屬分類:微電子時間:瀏覽:

  摘要:ARM9系列處理器是英國ARM公司設計的主流嵌入式處理器,主要包括ARM9TDMI和ARM9E-S等系列。文章發(fā)表在《網(wǎng)絡新媒體技術》上,是微電子論文范文,供同行參考。

  關鍵詞:移動應用開發(fā),J2ME,CLDC,KVM移植

  ARM微處理器是一種高性能、低功耗的32位微處器,它被廣泛應用于嵌入式系統(tǒng)中。ARM9代表了ARM公司主流的處理器,已經(jīng)在手持電話、機頂盒、數(shù)碼相機、GPS、個人數(shù)字助理以及因特網(wǎng)設備等方面有了廣泛的應用。

  0 引言

  目前移動手機上運行的操作系統(tǒng)種類繁多,包括Linux、Windows Mobile、Palm OS、Symbian OS、Google Android等。Java和J2ME技術克服了手機平臺多樣性造成的應用程序移植困難的問題,為移動應用程序的跨平臺開發(fā)和運行提供了可能。

  J2ME是Sun公司面向具有有限硬件資源的設備的Java版本,這些資源受限的設備包括PDA、手機、機頂盒和其它消費電子設備與嵌入式設備[1]。CLDC[2]和MIDP[3]已經(jīng)成為用于移動手機應用開發(fā)的J2ME標準。

  J2ME/CLDC技術的核心是Sun公司的KVM(Kilobyte Virtual Machine)[4]。KVM最初設計是用于資源受限的低端移動設備的JVM(Java virtual machine)。正是JVM的存在才使得Java具有“一次編譯,處處運行”的特征[5,6],因此,KVM的移植便成為J2ME應用于移動開發(fā)的首要前提。

  1 KVM的代碼執(zhí)行機制

  為了更好地理解KVM的移植過程,我們需要對KVM的代碼執(zhí)行機制作一些研究。

  在圖1中,文本格式的Java源程序(文件后綴名為.java)由Java編譯器編譯為Java字節(jié)碼文件(文件后綴名為.class),且每一個Java類對應一個.class文件。

  在運行階段,Java虛擬機先裝入或加載指定的“.class”文件,進行必要的校驗,然后找到指定的入口方法(例如main),由interpreter翻譯運行“.class”文件中的字節(jié)碼[7]。虛擬機在執(zhí)行過程中根據(jù)需要(如創(chuàng)建新對象等)動態(tài)加載用戶程序的其他“.class”文件或者系統(tǒng)類庫的“.class”文件并校驗和運行[8]。Java API類庫(一個大型的現(xiàn)成軟件組件(類)集合)是一些為用戶程序運行提供支持或起輔助作用的“.class”格式的標準的Java類,它是Java語言的一個標準組成部分。加載過程通常都是被推遲到必要的時候才進行。   JVM中的interpreter一般采用解釋的方式執(zhí)行字節(jié)碼。它按照程序執(zhí)行的順序逐條取出指令字節(jié)碼,翻譯成一段等效的本地代碼序列來執(zhí)行,這個解釋執(zhí)行過程一直重復到程序的最后一條指令執(zhí)行完為止[7]。

  下面我們再來看一下KVM的代碼執(zhí)行機制(如圖2所示)。

  圖2 KVM的代碼執(zhí)行機制

  我們知道,KVM需要運行在硬件資源受限的嵌入式設備上,因此有必要對虛擬機的功能進行簡化,提高其運行效率,并減小其體積。為此,將虛擬機原本復雜而耗資源的大部分校驗工作移出虛擬機,交由PC開發(fā)平臺上一個工具軟件preverify來進行預驗證或預校驗,從而減輕移動設備的負擔,而在KVM中只留下一個簡單的輕量級的校驗器[6,9]。

  因此,我們在編譯和預驗證用于KVM的Java代碼時,需要將-classpath選項指定為CLDC類庫的路徑,然后將預驗證過的class文件下載到目標設備由KVM來執(zhí)行。

  2 CLDC參考實現(xiàn)

  移植所用的KVM源碼是來自SUN公司的CLDC 1.1參考實現(xiàn)。表1中描述了該CLDC 1.1參考實現(xiàn)源碼包中的目錄結構[4]。

  [[子目錄\&說明\&api\&CLDC需要的核心Java類庫源代碼\&bin\&包含kvm等所有二進制執(zhí)行文件和已編譯好的核心Java類庫的class文件\&build\&用于編譯生成面向不同操作系統(tǒng)平臺的KVM的makefile\&doc\&相關的說明文檔\&jam\&KVM的可選組件JAM(Java Application Manager)的源碼\&kvm\&面向不同平臺的KVM的源碼\&tools\&一些需要用到的工具軟件的源碼,如JavaCodeCompact,preverifier,KDWP Debug Proxy\&]]

  3 CLDC參考實現(xiàn)的build過程

  KVM移植主要是采用合適的編譯工具對CLDC 1.1參考實現(xiàn)中的源碼進行編譯,以生成運行在目標平臺上的kvm可執(zhí)行文件。

  用于源碼build的Makefile文件根據(jù)源碼目錄的層次結構相應地被組織成一個層次結構。主Makefile文件放在build目錄中,由這里跳轉去執(zhí)行其它Makefile文件。在build目錄中,根據(jù)目標平臺上操作系統(tǒng)的不同類型分別對應有不同的主Makefile文件。

  在主Makefile文件中可以確定要參與build的代碼段,api部分是必選的,kdp和jcc都是可選的。因為要應用于嵌入式系統(tǒng),故未選擇kdp。對于JAM(Java Application Management),為簡化起見沒有選擇該部分。所有的選擇可以通過修改Makefile文件中的相關開關選擇項值進行,也可在命令行中用參數(shù)覆蓋。

  以ARM+Linux為目標平臺對CLDC參考實現(xiàn)進行build的操作很簡單,只需進入build/linux目錄,通過make命令執(zhí)行那個主Makefile文件,就開始build過程了。下面的圖3描述了其build過程。

  4 CLDC參考實現(xiàn)的源碼編譯

  KVM移植所采用的編譯環(huán)境為:Java編譯器Javac 1.6.0_22,(Fedora9自帶)X86平臺Gcc 4.3.0編譯器和交叉編譯器Arm-Linux-Gcc 4.3.2。

  首先,KVM的運行平臺是ARM+Linux平臺,所以需要在KVM\VmUnix\build目錄中將用于編譯KVM的Makefile文件中的編譯器設置為交叉編譯器Arm-Linux-Gcc[10],即:

  象所采用的編譯器。

  其次,在最終對KVM源碼進行編譯之前,需要先對所需工具軟件和API類庫進行編譯。因此,CLDC源碼編譯過程包括以下四個階段:編譯生成preverify工具,編譯和預驗證API類庫,編譯生成JCC工具,編譯和連接生成KVM。

  電子期刊論文投稿:《網(wǎng)絡新媒體技術》原刊名為《微計算機應用》,是由中國科學院聲學研究所主辦的公開發(fā)行的科技刊物,創(chuàng)刊于1980年,系月刊。主要刊登有關計算機科學研究與應用方面的研究論文和研究報告, 在科學試驗和現(xiàn)代化管理中計算機應用方面所取得的新進展、新成果、新技術、新方法。郵發(fā)代號:2-304。

主站蜘蛛池模板: 嘉兴市| 平舆县| 武安市| 灵丘县| 北宁市| 日喀则市| 若羌县| 达拉特旗| 连南| 铜梁县| 鄂州市| 辽阳市| 剑川县| 抚远县| 理塘县| 游戏| 绥棱县| 台东县| 凌云县| 罗定市| 西青区| 清原| 新营市| 通城县| 雷山县| 新密市| 绍兴市| 普定县| 康定县| 寻乌县| 邢台县| 长葛市| 酉阳| 中西区| 五莲县| 沁阳市| 凤凰县| 封开县| 全州县| 施秉县| 潢川县|