Lvtn
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
619
On Slideshare
619
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
7
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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. Nội dung
    • 1. Mục tiêu của đề tài
    • 2. Máy ảo Java
    • 3. Truyền dữ liệu giữa lớp C và Java
    • 4. Port CLDC
    • 5. Port MIDP
    • 6. Thống kê và kết luận
  • 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. Nội dung
    • 1. Mục tiêu của đề tài
    • 2. Máy ảo Java
    • 3. Truyền dữ liệu giữa lớp C và Java
    • 4. Port CLDC
    • 5. Port MIDP
    • 6. Thống kê và kết luận
  • 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. Nội dung
    • 1. Mục tiêu của đề tài
    • 2. Máy ảo Java
    • 3. Truyền dữ liệu giữa lớp C và Java
    • 4. Port CLDC
    • 5. Port MIDP
    • 6. Thống kê và kết luận
  • 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(); …
  • 11. Nội dung
    • 1. Mục tiêu của đề tài
    • 2. Máy ảo Java
    • 3. Truyền dữ liệu giữa lớp C và Java
    • 4. Port CLDC
    • 5. Port MIDP
    • 6. Thống kê và kết luận
  • 12. Các vấn đề quan tâm khi port CLDC xuống Trimedia
    • Class Loading
    • Hỗ trợ 64-bit
    • Hỗ trợ số thực
    • Đồng bộ thời gian
    • Bộ nhớ
    • JavaCodeCompact
  • 13. Nội dung
    • 1. Mục tiêu của đề tài
    • 2. Máy ảo Java
    • 3. Truyền dữ liệu giữa lớp C và Java
    • 4. Port CLDC
    • 5. Port MIDP
    • 6. Thống kê và kết luận
  • 14. Các Module trong MIDP
  • 15. Các vấn đề quan tâm khi port MIDP xuống Trimedia
    • Cơ chế chạy một MIDlet cơ bản
    • Các hàm về quản lý bộ nhớ
    • Trình quản lý các MIDlet
    • Giao diện người dùng và đồ họa
    • Ảnh PNG
    • Font
    • Bàn phím
    • Âm thanh
  • 16. Nội dung
    • 1. Mục tiêu của đề tài
    • 2. Máy ảo Java
    • 3. Truyền dữ liệu giữa lớp C và Java
    • 4. Port CLDC
    • 5. Port MIDP
    • 6. Thống kê và kết luận
  • 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
  • 18. Thống kê và kết luận
    • CLDC: Chưa hỗ trợ số thực
    • MIDP:
      • Chưa port networking
      • Chưa port security
      • Chưa port GameCanvas
      • Chưa hỗ trợ MIDI player
  • 19. Thống kê và kết luận
    • Số lượng hàm native đã port: 105/214
    • Một mô hình game Java cơ bản
    • Một số MIDlet demo tương ứng để test các thành phần đã port
  • 20. Demo
  • 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.