This content has been marked as final. Show 1 reply
Your question confuses me somewhat because Java doesn't need cross-compilers because it doesn't produce platform-specific binaries. So I'm not sure if you have a specific Java or Java-like execution execution environment in mind. First you will need a JVM for the ARM processor. There are a number of Java(-like) implementations for ARM including Sun's embedded SE versions:
and I think a port of the OpenJDK is also in progress, but I don't know what stage it is at.
The only real-time VM I'm aware of for ARM is Aicas' JamaicaVM. You'll need to contact them for details on what you can and cannot do in Java source/byte code on their system.
In general Java can not be used to build device-drivers as these typically form part of the Operating System. Even in the RTSJ the support for doing this is limited. If the device is accessed purely via shared-memory then the RTSJ RawMemoryAccess class may be used to interact with it; however if the device generates interrupts then you would still need a way to communicate to the JVM that the interrupt has occurred (or else poll for the interrupt from within the VM).
But specialized Java(-like) environments may provide additional direct support for this.