www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 智能硬件 > 智能硬件
[導讀]1 Java虛擬機簡介 Java ME(Java platform Micro Edition),以前稱J2ME,是為機頂盒、移動電話和PDA等嵌入式消費電子設(shè)備提供的Java語言平臺,它包括虛擬機和一系列標準化的Java API(Application Programming In

1 Java虛擬機簡介
    Java ME(Java platform Micro Edition),以前稱J2ME,是為機頂盒、移動電話和PDA等嵌入式消費電子設(shè)備提供的Java語言平臺,它包括虛擬機和一系列標準化的Java API(Application Programming Interface)。Java語言的平臺無關(guān)性使其廣泛應用于各行各業(yè),而嵌入式領(lǐng)域Java ME技術(shù)的發(fā)展尤為迅猛。截至2008年底,JavaME技術(shù)已應用于全球26億部移動手機、部署了60億個Java Cards、4 000萬臺以上的藍光設(shè)備和TV設(shè)備,遍及移動開發(fā)的各個領(lǐng)域。
    Java虛擬機(JVM,Java Virtual Machine)是實現(xiàn)Java語言平臺無關(guān)性的關(guān)鍵。Java虛擬機是Java技術(shù)的重要組成部分,它是一個抽象的運算機器,有一套自己的指令集,可在運行時操縱內(nèi)存的各個區(qū)域。
    嵌入式的Java虛擬機主要有兩大類:
    (1)CLDC VM
    CLDC VM(Connected Limited Device Configuration Virtual Machine)是連接受限的設(shè)備配置的虛擬機,以前稱為KVM(Kilobyte Virtual Machine,千字節(jié)虛擬機)。CLDC VM一般用于內(nèi)存很少(如1 MB以內(nèi))、CPU處理能力弱(如幾MHz)的嵌入式設(shè)備。Sun公司于2000年發(fā)布CLDC 1.0規(guī)范及KVM的參考實現(xiàn),之后于2006年將KVM參考實現(xiàn)轉(zhuǎn)到開源社區(qū),并重命名為phoneME Fea-ture。至2009年,phoneME Feature先后經(jīng)歷了MR1、MR2、MR3、MR4版。本文基于phoneME Feature MR4。通常CLDC VM的結(jié)構(gòu)如圖1所示。

    其中MIDlet是各種Java ME應用程序,運行于CLDC虛擬機之上。
    (2)CDC VM
    CDC VM(Conntected Device Configuration Virtual Machine)是已連接的設(shè)備配置的虛擬機,簡稱CVM。CVM一般用于智能手機、數(shù)字機頂盒、PDA等嵌入式設(shè)備。
    phoneME Feature MR4軟件是一個高性能的虛擬機,它不僅遵循CLDC規(guī)范,還實現(xiàn)了高效的資源管理,以及對多任務的支持等。與早期的KVM虛擬機相比,CLDC VM增加了如下特征:
    ◆支持CLDC 1.0、CLDC 1.1和CLDC 1.1.1;
    ◆改進Java應用程序的啟動時間和執(zhí)行速度;
    ◆支持AOT(Ahead-Of-Time,提前)編譯技術(shù);
    ◆支持原地執(zhí)行(in-place execution)功能;
    ◆支持多任務功能。


2 CLDC VM移植原理
    phoneME Feature軟件是一個功能完整的虛擬機,它通過了Sun公司的TCK(Technology Compatibility Kit,技術(shù)兼容工具包)兼容測試集。phoneME Feature直接支持兩種CPU架構(gòu):x86架構(gòu)和ARM架構(gòu)。在這兩種架構(gòu)上移植僅需少量修改,而要移植到MIPS架構(gòu)則需做較多修改。phoneME Feature軟件的結(jié)構(gòu)如圖2所示。

    ①JavaCall API移植層:該層提取目標平臺的需求,實現(xiàn)必須移植的函數(shù)集,是基于目標平臺的實現(xiàn)。pho-neME Feature的主要移植工作集中于此層。
    ②MIDP/CLDC層:是嵌入式Java虛擬機的核心部分。其中CLDC為資源受限的設(shè)備定義了應用編程接口和虛擬機的基礎(chǔ)函數(shù)集,MIDP(Mobile Information Device Profile,移動信息設(shè)備簡表)則提供應用程序環(huán)境和應用程序所需的大量服務。
    ③PCSL(Portable Common Services Library,可移植的通用服務庫)層:提供底層服務,供CLDC、MIDP和其他可選包調(diào)用。
    ④抽象層:是一套函數(shù)集,所有擴展JSR包通過抽象層接口與MIDP/CLDC層進行交互。
    ⑤擴展JSR包:為虛擬機提供擴展功能。擴展JSR包種類很多,可根據(jù)需要進行擴展。如支持藍牙和OBEX(對象交換)功能的JSR82擴展包、支持Web服務的JSR172包、支持定位功能的JSR179包、支持在線支付功能的JSR229包等。
    Java虛擬機的移植首先要確定兩件事:一是目標CPU,二是目標OS(操作系統(tǒng))。OS移植比較簡單,移植工作集中在虛擬機自身和核心CLDC庫上;而CPU移植則較為復雜,因為匯編解釋器和適配的編譯器十分依賴于目標CPU架構(gòu)。


3 CLDC VM移植過程
    phoneME Feature軟件結(jié)構(gòu)實現(xiàn)了完全的模塊化。它使用一個名為includeDB的配置數(shù)據(jù)庫來管理項目源文件和頭文件,可根據(jù)目標CPU架構(gòu)和目標OS需求在配置數(shù)據(jù)庫內(nèi)添加或修改相應的文件。使用includeDB配置數(shù)據(jù)庫,避免了#ifdef宏散布于整個源碼區(qū)間,還避免了使用復雜的#ifdef嵌套語句結(jié)構(gòu)。
    includeDB配置數(shù)據(jù)庫位于src/vm/includeDB,它是純文本文件,針對目標CPU架構(gòu)和目標OS需求進行添加或修改的頭文件和函數(shù)文件都應在該配置文件中進行注冊。
    檢查includeDB文件,可立即得到在OS移植或CPU移植時需要注意的文件。在建立移植軟件時,還使用ineludeDB配置數(shù)據(jù)庫來跟蹤文件的依賴關(guān)系。為MIPS目標平臺建立的頭文件和函數(shù)文件都需要添加到includeDB數(shù)據(jù)庫。
    phoneME Feature軟件具有良好的模塊化結(jié)構(gòu),其移植工作集中于JavaCall層。移植模型如圖3所示。

    針對MIPS目標架構(gòu)的移植過程如下:
    (1)OS移植
    目標OS為經(jīng)裁剪的通用Linux系統(tǒng),內(nèi)核為2.6.12版。phoneME Feature軟件的大多數(shù)代碼文件都與OS無關(guān),只有極少的幾個文件涉及目標OS。OS移植接口分為兩部分:一部分為OS通用部分,它位于源碼目錄src/vm/share/runtime下,適合大多數(shù)OS;另一部分則針對目標OS,位于源碼目錄src/vm/os/linux下。
    OS指定的移植接口由/src/vm/share/runtime目錄下的OS.hpp和OS.cpp文件進行定義。實際上這兩個文件只實現(xiàn)了一個Os類,向虛擬機提供特殊功能。
    OS移植接口的其他部分包括文件系統(tǒng)(由OsFile.hpp和OsFile.cpp定義)、線程(由Thread.hpp和Thread.cpp定義)、事件處理(由Task.hpp、Task.cpp、TaskCon-text.cpp、TaskContext.hpp和TaskList.hpp等定義)、內(nèi)存管理(由OsMemory.hpp和OsMemory.cpp等定義)等。針對目標OS的移植,需建立/src/vm/os/mips目錄(以MIPS目標架構(gòu)命名),在目錄下需創(chuàng)建下列文件:JVM_mips.hpp、JVM_mips.cpp;OS_mips.hpp、OS_mips.cpp;OsFile_mips.hpp、OsFile_mips.cpp;OsMemo-ry_mips.hpp、OsMemory_mips.cpp;OsMisc_mips.hpp、OsMisc_mips.cpp。
    根據(jù)需要,可能還需創(chuàng)建OsSocket_mips、Globals_mips等文件。這些文件是文件系統(tǒng)、線程、事件處理、內(nèi)存管理等在目標OS的具體實現(xiàn)。如OS_mips.cpp中實現(xiàn)了取寄存器值、取PC指針值、為PC指針值賦值、sleep等方法。需強調(diào)的是,OS_mips.cpp文件中有兩個方法非常重要,且必須實現(xiàn):
    ◆static void initialize();//用于初始化OS,如定時器、線//程、I/O等
    ◆static void dispose();//用于撤銷初始化的所有工作,//清除線程和其他OS活動
    (2)CPU移植
    CPU移植的工作主要有兩個:一是移植解釋器和解釋器的產(chǎn)生器;二是移植相應的編譯器。
    CPU移植的難點在于編譯器的優(yōu)化和調(diào)整,因為虛擬機的匯編解釋器和相應的編譯器依賴于具體的CPU架構(gòu)。建立/src/vm/cpu/mips目錄,并編寫相關(guān)文件。以解釋器的產(chǎn)生器為例,需要編寫(包括頭文件和源文件):Assembler_mips、SourceAssembler_mips、SourceMacros_mips、Disassembler_mips、TemplateTable_mips、Interpret-erGenerator_mips、NativeGenerator_mips、SharedStubs_mips、InterpreterStubs_mips、CompilerStubs_mips等。
    (3)JavaCall移植
    JavaCall函數(shù)集被分成多個子系統(tǒng)。這些子系統(tǒng)包括:圖形子系統(tǒng)、內(nèi)存管理、LCD顯示、字體、文件和目錄、Socket套接字等。
    以移植文件系統(tǒng)接口為例:CLDC虛擬機使用了類似POSIX標準C庫的文件API,由于目標平臺是基于Linux的,所以不需要映射OsFile_read()方法到目標操作系統(tǒng)。要確保CLDC虛擬機能正確操作OS下的文件,需要驗證以下接口:
    ◆im OsFile_remove(const JvmPathChar*filename)
    ◆bool OsFile_rename(const JvmPathChar*from,constJvmPathChar*to)
    ◆im OsFile_open(const JvmPathChar*filename,constchar*mode)
    ◆int OsFile_close(OsFile_Handle handle)
    ◆int OsFile_flush(OsFile_Handle handle)
    ◆size_t OsFile_read(OsFile_Handle handle,void*buffer,size_t size,size_t count)
    ◆size_t OsFile_write(OsFile_Handle handle,const void*buffer,size_t size,size_t count)
    以上接口實現(xiàn)了文件的常用操作,如文件的打開、讀、寫、關(guān)閉、刪除、重命名等。


4 CLDC VM移植驗證
    完成以上移植所需的修改后,建立Makefile,設(shè)置所需的環(huán)境變量,使得phoneME Feature成功通過交叉編譯,生成目標系統(tǒng)所需的CLDC VM虛擬機。
    移植的驗證較為簡單,將交叉編譯生成的cldc_vm可執(zhí)行文件、庫文件以及Demo示例文件復制到目標平臺,運行并檢查結(jié)果。命令結(jié)構(gòu)是:bin/cldc_vm.exe-class-path location-of-compiled-applications/classes classname。


5 CLDC VM移植優(yōu)化
    CLDC虛擬機的移植優(yōu)化可以從幾方面進行:
    ①優(yōu)化參數(shù)。在虛擬機建立過程中,phoneME提供了很多選項,針對不同的目標平臺使用不同的選項。
    ②Thumb指令集的開關(guān)。ARM等CPU支持Thumb指令集,phoneME也支持Thumb指令集。如果目標平臺支持Thumb指令集,可以開啟Thumb開關(guān),加快虛擬機執(zhí)行速度。
    ③其他。對虛擬機的優(yōu)化還可從編譯器自身、內(nèi)存子系統(tǒng)等方面進行優(yōu)化。


結(jié) 語
    基于phoneME Feature軟件生成的CLDC虛擬機與早期的KVM虛擬機相比,性能得到較大改善,尤其是在多任務支持方面(早期的KVM虛擬機不支持多任務功能)。筆者在Broadcom 7403和NXP 225上成功實現(xiàn)CLDC VM的移植。下一步的工作是在國產(chǎn)數(shù)字電視SoC芯片上實現(xiàn)CLDC VM的移植。目前多核技術(shù)是計算機行業(yè)的研究熱點,并逐步向嵌入式領(lǐng)域發(fā)展,因此支持多核CPU技術(shù)和并行技術(shù)的CLDC虛擬機將是未來的研究方向之一。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

(全球TMT2022年10月18日訊)10月14日,國際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國軟件定義存儲及超融合市場研究報告》,報告顯示:2022年上半年浪潮超融合銷售額同比增長59.4%,近5倍于業(yè)內(nèi)平均增速,市...

關(guān)鍵字: IDC 虛擬機 私有云 軟件定義

亙喜生物科技集團宣布正在中國開展的、旨在全面評估GC007g治療復發(fā)/難治性急性B淋巴細胞白血病效果的1/2期注冊性臨床試驗順利進入2期研究階段,首例入組患者已給藥。GC007g是亙喜生物旗下的一款靶向CD19的供者來源...

關(guān)鍵字: 移植 CD

摘要:工業(yè)控制現(xiàn)場使用的可編程控制器種類繁多,因此對于現(xiàn)場自動化工程師來說,需要使用的編程軟件也各種各樣,工控軟件之間存在系統(tǒng)不兼容的問題。虛擬化應用到工業(yè)控制當中可以有效保證工控主機的高可用性,降低由于工控主機損壞導致...

關(guān)鍵字: 超融合 虛擬機 工業(yè)控制

北京2022年9月9日 /美通社/ -- 諾誠健華(香港聯(lián)交所代碼:09969)今天宣布,tafasitamab (Minjuvi®)聯(lián)合來那度胺治療不適合自體干細胞移植 (ASCT) 條件的復發(fā)/難治彌漫性大B...

關(guān)鍵字: VI NJU BSP 移植

北京2022年8月29日 /美通社/ -- 伴隨著云、大數(shù)據(jù)、AI等創(chuàng)新技術(shù)的發(fā)展普及,企業(yè)信息化應用系統(tǒng)以及應用環(huán)境都變得越來越復雜,但縱觀全球市場,大型機、小型機的市場持續(xù)萎縮,越來越多的企業(yè)選擇高性價比、...

關(guān)鍵字: SCALE 虛擬化 AN JAVA

蘇州2022年8月19日 /美通社/ -- 近日,華中科技大學同濟醫(yī)學院附屬協(xié)和醫(yī)院心外科董念國教授團隊運用與心擎醫(yī)療聯(lián)合研發(fā)的短中期體外全磁懸浮心室輔助裝置MoyoAssist®,成功救治三例危重的終...

關(guān)鍵字: 磁懸浮 移植 IC 靜脈

上海2022年8月17日 /美通社/ -- 2022年8月16日,聚焦于基因和細胞治療的上海邦耀生物科技有限公司(以下簡稱"邦耀生物")宣布,其...

關(guān)鍵字: CD 移植 BSP ISP

北京2022年7月27日 /美通社/ -- 《“十四五”國家信息化規(guī)劃》中明確提出煤炭基礎(chǔ)設(shè)施智能化概念,要求礦山智能化與信息化深度融合,建設(shè)智慧能源系統(tǒng)。煤炭行業(yè)也紛紛提出了以智能感知、智能決策...

關(guān)鍵字: 智能化 虛擬機 云計算 大數(shù)據(jù)

摘要:為滿足某鋼廠燒結(jié)生產(chǎn)的工藝監(jiān)控需求,實現(xiàn)煉鐵作業(yè)部的生產(chǎn)管理功能,開發(fā)了燒結(jié)L2管理系統(tǒng)軟件。該系統(tǒng)通過HPVMwareEsxiandvsphere虛擬機技術(shù),實現(xiàn)了系統(tǒng)硬件的集約使用與管理:通過使用oracle數(shù)...

關(guān)鍵字: 燒結(jié)L2管理系統(tǒng) 數(shù)據(jù)庫 虛擬機

蘇州2022年6月28日 /美通社/ -- 2022年6月23日,首都醫(yī)科大學附屬北京安貞醫(yī)院(以下簡稱安貞醫(yī)院)與蘇州心擎醫(yī)療技術(shù)有限公司(以下簡稱心擎)在北京、蘇州兩地線上連線,隆重召開體外心室輔助系統(tǒng)臨床...

關(guān)鍵字: BSP 磁懸浮 創(chuàng)始人 移植

智能硬件

21972 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉