1 / 38

Java for embedded systems

Java for embedded systems. Felix G. Hamza-Lup. Outline. Embedded systems characteristics Application domains Java characteristics Java in embedded systems Future trends References. Embedded systems. Real-Time systems

tavi
Télécharger la présentation

Java for embedded systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java for embedded systems Felix G. Hamza-Lup

  2. Outline • Embedded systems characteristics • Application domains • Java characteristics • Java in embedded systems • Future trends • References

  3. Embedded systems • Real-Time systems • Timing constrains play a critical role in their design and implementation. • Have dedicated functionality i.e. designed strictly for a specific set of tasks • Incorporate relatively low-speed microprocessors and may have a limited amount of memory.

  4. Embedded systems - Inputs • Random • Short-lived external signals • Processor must interrupt whatever else it is doing to capture the data, or it will be lost => embedded programs are organized as a set of individual, but cooperating threads of execution.

  5. Hardware for embedded applications • Most embedded systems are housed within a highly-constrained box. • lack of space • excessive vibration => embedded applications will be structured as a small section of initialization code that starts the programs from a ROM disk

  6. Outline • Embedded systems characteristics • Application domains • Java characteristics • Java in embedded systems • Future trends • References

  7. Embedded systems – applic. domains • Machine and process control • Medical instruments • Data acquisition • Network components: routers and switches

  8. Less constraints • Telephony: mobile phones, pagers • PDAs

  9. Outline • Embedded systems characteristics • Application domains • Java characteristics • Java in embedded systems • Future trends • References

  10. Characteristics • Portability – platform independence • Software reuse – OO • Simplicity – easy to learn • Safety and security • JavaTM Authentication and Authorization Service (JAAS) • JavaTM Cryptography Extension (JCE) • Secure Socket Extension (JSSE)

  11. Some key characteristics • The key characteristics of Java that make it attractive as a specification language for embedded systems are: • Built in multithreading and synchronization • Lack of pointer arithmetic • Automatic memory management

  12. Outline • Embedded systems characteristics • Application domains • Java characteristics • Java in embedded systems • Future trends • References

  13. Technical challenges for embedded environment

  14. Problems with “Desktop” Java • Too big: JVM + JIT (just-in-time) compiler+libraries  16 MB • Too slow: 5 x slower than C code • No notion of address: most often hardware is accessed referring to a specific address • Security, portability, dynamic behavior – not needed in embedded systems

  15. Problems with “Desktop” Java • Java Garbage Collector- collect unused memory • JCG – dangerous in embedded systems “stop-the-world effect” • Memory allocation is not fast enough and not predictable

  16. Java embedded: alternatives … • Special purpose JVM and core libraries • JVM with JIT compiler • Compiled JAVA (instead of interpreted)

  17. Special purpose JVM and Frameworks • Sun’s PersonalJava • Sun's EmbeddedJava • JIT – compiler • J2MicroEdition • JADE’s LEAP

  18. PersonalJava • Re-implements the full set of Java APIs defined by the Java application environment • Fits into smaller devices with more limited memory configurations

  19. EmbeddedJava - Goals • Standardize software development for embedded devices • Integrate a compact EmbeddedJava application environment directly into new devices • Small adjustable memory footprint <= Configurable APIs based on application.

  20. EmbeddedJava - Sun's advanced tools streamline • JavaFilter - builds a list of the specific fields and methods used by the Java platform to run the Java application • JavaCodeCompact - optimizes the code by removing unused parts of the platform. • JavaDataCompact– forlinking in auxiliary data files such as HTML, image, and sound files.

  21. Sun's EmbeddedJava Technology

  22. EmbeddedJava Application Environment

  23. JIT compiler

  24. JIT vs. interpreted Slow

  25. JVM/JIT compiler & Products • Dynamic compilation technique using a JIT compiler but tradeoff between: • performance • memory consumption • startup time • KAFFE JIT- one order of magnitude better execution time than Sun's JDK VM • SuperCede VM - performs 58% and 91% faster then JDK • Guava by Softway -better than Sun's JDK 1.0.2 VM • Microsoft's JVM/JIT- in Internet Explorer ; PC Magazine, “is the fastest JVM/JIT for the PC market.” • KVM – Kilo Virtual Machine – small code size kernel

  26. Compiled JAVA • Java  native machine language • Seems to be the current trend • “Bye, bye” • portability • load new classes on-the-fly • Best real-time behavior

  27. J2MicroEdition • A subset of the Java Standard Edition • Notion of configuration

  28. J2MicroEdition • CDLC config. • 160-512 kB of memory • 16-32 bit processor • network connectivity • J2ME Wireless Toolkit • debugging capabilities • emulators

  29. JADE • Java Agent DEvelopment Framework • Software framework fully implemented in Java language • A middle-ware that simplifies the implementation of multi-agent systems • Complies with the FIPA specifications

  30. JADE’s LEAP on embedded systems • Lightweight Extensible Agent Platform • LEAP is an extension of JADE to enable it to run on wireless devices and PDA's such as cell phones and Palms • 02/05/02 - LEAP 2.1 has been released

  31. LEAP Architecture

  32. LEAP agent communication

  33. Target devices for LEAP

  34. Outline • Embedded systems characteristics • Application domains • Java characteristics • Java in embedded systems • Future trends • References

  35. Trends • Some constraints are relaxed: more memory, cheaper CPUs … • Real-time functionality - delivered by OS not by JVM • Tendency to link Java code with OS proprietary code • Real-time threads parallel to JAVA threads • New distributed services

  36. Trends - Real-time threads

  37. References (1) • http://java.sun.com/products/embeddedjava • “What are the advantages of Java in embedded systems?” F.Mueller, ECE 2002 • “Using Java in Embedded Systems” V.Ivanovic, M. Mahar, Circuit Cellar, 1999. • “Java on embedded systems” M.Gafen, NSI.com. • “Personal Java – Application Environment Specification v.1.1.2” 1999. • Embedded systems conferences: http://www.esconline.com/

  38. References (2) • “LEAP: a FIPA platform for mobile and handheld devices” Frederico B., Agostino P. • “Introduction to Java 2 Micro Edition”, Jeff Brown, OCI (Object Computing Inc) • JADE: http://sharon.cselt.it/projects/jade/ • LEAP: http://leap.crm-paris.com/ • FIPA: http://www.fipa.org/

More Related