JDK6 for embedded ARM
xerxes at zafena.se
Mon Apr 27 06:51:09 PDT 2009
Rogerio Pimentel wrote:*
> Hi !
> Has anybody compiled JDK6 for any embedded device?
OpenJDK6 have been known to compile and run on embedded ARM systems
since the summer 2008.
Binarys are currently shipping with the Debian/Linux ARM "armel"
distribution, the Ubuntu "armel" ARM distribution and various embedded
Linux distributions based on the openembedded infrastructure.
Most development are currently performed at the Icedtea repository,
patches are maing their way into OpenJDK through the Icedtea project:
OpenJDK6 for ARM can be built using the Icedtea build infrastructue in
three different ways:
1. Hotspot+zero, (interpreter only) currently the most compatible way of
running JDK6 on ARM, zero have quite quick upstart times yet dont have
great top speed since it are only running in interpreted mode.
2. Hotspot+zero+shark (mixed mode JIT and interpreter) Shark are still
under heavy developement and are not stable enough for real use , Shark
on ARM can at the moment run "Hello World" and some other trivial java
programs that finishes quickly.
3. Cacao (JIT only) instead of using hotspot it are possible to use the
Cacao research vm, cacao are quite fast yet it lacks debugging support
like JVMTI and have some upstart overhead since all methods must be
jited before they are run.
I have written a FAQ how to cross compile OpenJDK for many embedded
ARM/Linux distributions using Icedtea, Jalimo, OpenEmbedded and BitBake.
Binarys generated this way are known to work on Nokia internet tablets,
Neo freerunner phones, The BUG and many embedded ARM developement boards.
> Is JDK6 a good choice to use in embedded systems?
It all depends on your expectations.
Embedded systems have recently got access to quite a lot of storage by
using sd card memorys and processing power have increased a lot thus
running a JavaSE like environment on embedded hardware are now more
possible than ever.
Being able to use software deployment strategies like java webstart on
networked embedded hardware are a reality using JDK6.
Being able to run the same applications as used on desktops on embedded
hardware are possible! yay!
Currently the main bottlenecks running JDK6 on embedded ARM hardware
becomes obvious when running GUI intense swing applications.
Unfortunally most embedded chip makers don't provide accelerated
embedded graphics chips drivers as free software and thus most graphics
functionality don't get the acceleration as they should thus keeps
slowing down the cpu.
Running embedded java servers on screenless devices like plugcomputers:
go for it!
Running tailored client java applications with slightly reduced
swing/awt gui's are all ok as well.
Running heavy swing applications currently don't work that well.
Cheers, and have a great day!
More information about the jdk6-dev