====== Accessing the Hardware ====== Java was developed as a safe language. It does not allow direct access and manipulation of absolute memory locations. Nevertheless this is essential for embedded programming. We therefore include this possibility by the use a special java class ''org.deepjava.unsafe.US'' (US stand for //unsafe//). Wenn methods of this class are used the code generator inserts machine code accordingly.\\ By using ''US.java'' you can * read from absolute memory locations (1, 2, 4, 8 bytes) * write to absolute memory locations (1, 2, 4, 8 bytes) * test a bit at an absolute memory location * directly insert machine code * get the address of a static method at compile time * get the address of a object Depending on the processor architecture there are some more unsafe capabilities. ==== On the PowerPC platform ==== ''org.deepjava.unsafe.ppc.US'' implements * read and write directly to machine registers (GPRs, FPRs, SPRs) * enable the use of floats for exception routines ==== On the ARM platform ==== ''org.deepjava.unsafe.arm.US'' implements * read and write directly to machine registers (GPRs, EXTRs, CPRs) * enable the use of floats for exception routines The API of US can be found under: [[http://api.deepjava.org/runtime-library/org/deepjava/unsafe/US.html|API US]], [[http://api.deepjava.org/runtime-library/org/deepjava/unsafe/ppc/US.html|API US PPC]], [[http://api.deepjava.org/runtime-library/org/deepjava/unsafe/arm/US.html|API US ARM]]