ARM用CLDC HotSpot実装アセンブリ

この記事では、組み込みおよびモバイルプラットフォーム向けのSunのオープンソースCLDC HI仮想マシンJavaと、ARMコンピューター向けのその構築について説明します。



CLDC HI


Connected Limited Device Configuration HotSpot Implementation Virtual Machine(CLDC HI VM)は、Oracle(以前のSun)が開発したリソース制限のあるデバイス向けの高性能仮想Javaマシンです。 これは「小型」デバイス用の仮想マシンの1つであり、携帯電話、PDA、決済端末など、メモリと処理能力が限られているデバイスでJ2MEアプリケーションを実行できます。



CLDC HI JVMは、Squawk、KVM、Maxine、CVMなどの他の利用可能な仮想マシンと比較して、バイトコードの実行を高速化し、リソースをより効率的に使用できる最適化された仮想マシンです。主にARMプロセッサで。



個別の製品としては提供されませんが、対応する機器のメーカー向けのいくつかのソリューションに含まれています。 この仮想マシンのバージョンの1つは、GPLv2ライセンスの下でSunによって開発されました。 オープンソース( PhoneME Featureとも呼ばれます )。 ただし、パブリックドメインでのこの仮想マシンのアセンブリと起動に関するドキュメントは実質的になく、その開発とサポートは、Sunの買収後にOracleによって実質的に停止されました。



したがって、この記事では、CLDC HI自体とそのアセンブリの簡単な説明と、以下のリンクからの詳細なアセンブリ手順を提供します。



プロファイルと構成について


J2MEアプリケーションを実行できるデバイスは、サポートされている構成とプラットフォームプロファイルによって決まります。 この構成では、プラットフォームの低レベル部分(Java言語の機能、その仮想マシン、および基本クラス)のみを説明します。



現在、Java MEプラットフォームには2つの構成があります。
  1. CDC-接続デバイスの構成 -32ビットアーキテクチャのデバイス上の仮想マシンで使用され、2 MB以上のメモリが必要です。 CLDCと比較して、アプリケーションにより多くの機能を提供しますが、ハードウェア要件もより厳しくなります。
  2. CLDC-接続された限定デバイス構成 -メモリが限られている16ビットおよび32ビットデバイスに使用されます。

    次の機能を備えたCLDC構成ターゲットデバイスに合わせたJ2MEアプリケーション。
    • 最小ROMサイズ:CLDC 1.0の場合は128キロバイト、CLDC 1.1の場合は160キロバイト
    • 最小RAM:32キロバイト
    • CPU:16ビットまたは32ビット
    • 低消費電力
    • 不安定な接続と限られたデータ転送速度などで、ワイヤレスを含むネットワークに接続する


プラットフォームの上位レベルの部分はプロファイルです。 プロファイルは、大きなクラスのデバイス(携帯電話、スロットマシン、家電製品)ごとに設定されることを前提としています。 つまり プロファイルは、アプリケーションがサポートするデバイスのタイプを決定します。 このプロファイルは、デバイスのスコープを定義する特定のクラスで構成を補完します。



J2MEは、KJavaとモバイル情報デバイスプロファイル(MIDP)の2つのCLDCベースのプロファイルを定義します。 独自のFoundationプロファイルを作成できるCDCのテンプレートプロファイルが利用可能です。



CLDCとMIDPで構成されるプラットフォームは、携帯電話市場では非常に一般的です。 CLDC HIは、CLDC 1.1(JSR 118)およびMIDP 2.1プロファイル(JSR 139)の構成にも基づいていることに注意してください。



CLDC HIアセンブリ


この仮想マシンは、Javaプラットフォームをサポートしていないデバイスにモバイルアプリケーションを転送する必要がある場合に非常に便利です。 したがって、この記事では、以下を含むCLDC HI Javaマシンのアセンブリについて説明します。
  • アセンブリとコンパイルに必要な製品の最小セット。
  • gccとbinutilsに基づいたクロスコンパイル環境のセットアップ。
  • ビルドツールの不完全な下位互換性に関連するソースコードのローカライズおよび修正されたバグ。
  • ARMアーキテクチャを備えたプラットフォームで実行するコンパイルキー。




実際に、PhoneMEプロジェクトリポジトリに移動します 。その構造は以下に表示され、必要な基本コンポーネント(cldc、midp、pscl、ツール)を取得します。 Javaマシンの機能を拡張する必要がある場合は、リポジトリから適切なJSRパッケージを取得します。 彼らはmidpと一緒に来ます。





CLDC HIを構築する主な段階:
  • クロスコンパイル環境設定(ツールキット、環境変数);
  • PCSLライブラリのアセンブリ。
  • CLDC構成をビルドします。
  • MIDPプロファイルを組み立てます(必要に応じて、JSRパケットを組み立てます)。


Linux on ARMのより詳細なアセンブリ手順については、 CLDC HIアセンブリを参照してください。



アセンブリが正常に完了すると、アセンブリされたコンポーネントを含む出力が得られ、ターゲットデバイスに転送されます。



Paspberry Piで起動


パフォーマンスをチェックするためのターゲットデバイスとして、ARMプロセッサを搭載したシングルボードRaspberry Piコンピューターが使用されました。





jarファイルはJVM入力に提供され、JVM入力はMidletインストーラーによって処理され、各アプリケーションの個別の番号を提供します(詳細については、 CLDC HIアセンブリを参照してください)。 その後、CLDC HI JVMはアプリケーション番号で開始し、デバイスの画面イメージを表示するframeBufferを作成します。

以下は、Raspberry PiでCLDC HIを使用するjavaゲームスネークの操作を示しています。







PS:この記事は、サンクトペテルブルク州立大学の数学と力学の学部でのコースワークの結果に基づいて書かれました。

Sarmanova S.G.が演奏

科学顧問ポロゾフV.S.



All Articles