deep

a Cross Development Platform for Java

User Tools

Site Tools


crosscompiler:hardware

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
crosscompiler:hardware [2016/02/25 13:33] – external edit 127.0.0.1crosscompiler:hardware [2020/12/10 15:29] (current) ursgraf
Line 1: Line 1:
 ====== Accessing the Hardware ====== ====== Accessing the Hardware ======
  
-Java was developed as a save 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 ''US.java'' (US stand for //unsafe//). Wenn methods of this class are used the code generator inserts machine code accordingly.\\+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 By using ''US.java'' you can
   * read from absolute memory locations (1, 2, 4, 8 bytes)   * read from absolute memory locations (1, 2, 4, 8 bytes)
   * write to 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    * test a bit at an absolute memory location 
-  * read and write directly to machine registers (GPRs, FPRs, SPRs) +  * directly insert machine code  
-  * directly insert machine code+
   * get the address of a static method at compile time   * 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    * enable the use of floats for exception routines 
  
-The API of US.java can be found under:  [[http://api.deepjava.org/runtime-library/ch/ntb/inf/deep/unsafe/US.html|API US.java]]+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]]
crosscompiler/hardware.1456403585.txt.gz · Last modified: 2016/02/25 13:33 by 127.0.0.1