1. Chuyển máy ảo Java xuống hệ thống NXP Trimedia GVHD: TS. ĐINH ĐỨC ANH VŨ GVPB: KS. PHẠM QUỐC CƯỜNG SVTH: HỒ VIỆT LÂM
2.
3. Mục tiêu của đề tài Hardware OS Java VM Core Java Library JSR + MIDP Java Library MIDP JSR MIDlet Máy ảo Java Thư viện Java: java.lang, java.util, java.io Java Specification Request Thư viện Java: Graphics, User Interface, Input.. pSOS Mobile Information Device Profile Java Java Java C C C C C Java C C C Java C Ứng dụng và game Java Hệ Thống NXP Trimedia Connected, Limited Device Configuration (CLDC) Java 2 Micro Edition (J2ME)
4.
5. Máy ảo Java Class Loader Class Files VM Register Java Stacks Java Heap Method Area Interpreter reference a new class loading Garbage Collector IP, LP, SP, FP, CP Jasmin code Class code Class data Constant pool Instance data iload iconst ipush iadd … Instruction Pointer Stack Pointer Local Pointer Frame Pointer Constant Pool Pointer Preverification Verification
6.
7. Truyền dữ liệu giữa lớp C và Java Java Code Jasmin Code Interpreter Java Stack c = a+b; iload_0 iload_1 iadd ipush swicth (ip) { case iload: … break; case iadd: … break; case ipush: … break; … } a b … c …
8. Truyền dữ liệu giữa lớp C và Java method (java) native execute jasmin code False native function (C) Create execute native function
9. Truyền dữ liệu giữa lớp C và Java Graphics.drawLine (int x1, int y1, int x2, int y2) Java_javax_microedition_lcdui_Graphics_drawLine() const NativeImplementationType javax_microedition_lcdui_Graphics_natives[] = { … { "drawLine", NULL, Java_javax_microedition_lcdui_Graphics_drawLine }, … } const ClassNativeImplementationType nativeImplementations[] = { … { "javax/microedition/lcdui", "Graphics", javax_microedition_lcdui_Graphics_natives }, … }
10. Truyền dữ liệu giữa lớp C và Java … if (thisMethod->accessFlags & ACC_NATIVE) { ip += invokerSize; VMSAVE invokeNativeFunction(thisMethod); VMRESTORE TRACE_METHOD_EXIT(thisMethod); goto reschedulePoint; } … … CurrentNativeMethod = thisMethod; native(); …
17. Các công việc đã làm được Class Loading Verification Time Core Language and virtual machine Core Java Library ROMizer Memory allocation 64-bit long Float support Thread Gabage Collector Basic Midlet Life-Cycle Graphics/User-Interface key Storage Sound MIDlet Management Không chạy được các class số thực Chưa hỗ trợ GameCanvas Chưa hỗ trợ ảnh tranparent Số lượng font đã port 1/3 Chưa hỗ trợ sự kiện Keyreleased Chưa hỗ trợ định dạng MIDI CLDC MIDP
21. Tham Khảo 1. Core J2ME Technology & MIDP , by John W.Muchow, ISBN 0130669113. 2. CLDC Reference Implementation, Sun Microsystems. 3. MIDP Reference Implementation, Sun Microsystems. 4. pSOS System Concepts , Integrated Systems, part number 0005433001.