Download presentation
Presentation is loading. Please wait.
Published byLester Reynold Bond Modified over 9 years ago
1
Java for embedded systems Felix G. Hamza-Lup
2
Outline Embedded systems characteristicsEmbedded 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 domainsApplication 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 characteristicsJava characteristics Java in embedded systems Future trends References
10
Characteristics Portability – platform independence Software reuse – OO Simplicity – easy to learn Safety and security -Java TM Authentication and Authorization Service (JAAS) -Java TM 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 systemsJava 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 – for linking 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 VMKAFFE JIT- one order of magnitude better execution time than Sun's JDK VM SuperCede VM - performs 58% and 91% faster then JDKSuperCede VM - performs 58% and 91% faster then JDK Guava by Softway -better than Sun's JDK 1.0.2 VMGuava 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.”Microsoft's JVM/JIT- in Internet Explorer ; PC Magazine, “is the fastest JVM/JIT for the PC market.” KVM – Kilo Virtual MachineKVM – 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 trendsFuture 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/
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.