|
The aJile RTOS provides a standard JME platform without the need for any additional third-party software or licensing. The aJile RTOS is implemented entirely in Java. This allows the benefits of Java technology, including increased productivity, portability, and security, to be leveraged at all levels. The aJile RTOS consists of several layers as illustrated below.
The primary
components of the aJile real-time operating system
are outlined as follows:
aJile supports the following OSGi frameworks:
The aJile real-time
Java runtime systems are built upon the Java ME platform:
- Network Stack, File System, and
Security Framework
The aJile RTOS includes the following subsytems to support the JME platform:
- TCP/IPJME runtime libraries and aJile's Java implementation of JNI, graphics primitives for 8-bit and 16-bit panels
- TCP/IP network stack
including PPP, DHCP, DNS, SNMP services
-
FAT 32 file system
for USB and CF memory cards
- USB 2.0 host stack
- Security
frame work
- Bootloader for emote application updates
The suite of software drivers are available for the following devices:
-
Cirrus Logic, and SMSC 10/100 Ethernet
controller and PRISM wireless chipset
-
TransDimension USB OTG controller
-
USB serial drivers for
memory sticks, keyboards, and mice
-
Multiport serial UARTs and on-chip DUARTs
-
SPI devices including touch screen controllers
-
I2C devices including RTCs
-
CF HBA and PCMCIA interfaces for memory cards and modems
-
Epson and MediaQ LCD controllers
- Programmers for NAND and NOR Flash components
- aJile
Real-time OS Kernel
aJile processors
include an internal microprogrammed real-time kernel. It performs the traditional operating system
functions (scheduling, context switching, interrupt preprocessing, error
preprocessing, object synchronization). Java threads are native threads on the aJile processor, and
extended bytecodes are used to implement these Java threading primitives (sleep, wait, notify, notifyall, yield, monitor enter, monitor exit, and
interrupt) in order to provide extremely fast and atomic (non-interruptible) executive
operations. The on-chip real-time thread
manager performs priority-based preemptive scheduling with extremely fast
context switch times of less than 1µs. In addition, aJile Multiple JVM (MJM) technology enables multiple applications to excute concurrently and independently in a deterministic, timesliced schedule. Each JVM employs its' own threading and memory policies to enable real-time applications to execute concurrently with networked applications without the thread of G.C pauses and other interruptions. The MJM capability takes the Java "sandbox" security model to the next level, providing a mechanism to easily isolate applications and allocated resources. aJile RTOS enables hard real-time applications to run independently and safely co-exist with networked applications.
Development Tools
The development environment
allows the use of any off-the-shelf IDE that produces Java standard class
files such as Eclipse or
Netbeans. The primary components
of the development tools are:
-
Optimizing
Linker/Application Builder
The Java ME platform can be programmed for
completely static applications or a combination of static and
dynamic applications. Static applications are characterized as being
fully resolved and linked as an absolute load module. Dynamically loaded applications require a static component
to classload the application jar files from the designated source. It supports the following features:
-
GUI
based application build configuration and control tool - JEM Builder
-
Utilizes
standard JVM class files generated by commercial Java IDEs
-
Statically
resolves class files and eliminates unused methods and fields
-
Performs
bytecode optimizations
-
Performs
method substitutions (method invokes replaced by extended bytecodes)
-
Builds
boot tables, class initialization code, and assigns interrupt and trap
handlers
-
Configures
JVM and memory layout
- Application
Debugging Tools
-
aJile application development
kit utilizes host-target communications via an IEEE 1149 (JTAG) interface. JTAG development kit includes
a parallel port connector,
cables, and JTAG pod
-
Host-based
full featured low-level debugger - Charade
- Host-based JPDA compliant JVMDI
driver (JemDebug) for source-level debugging
|