aJile Real-Time JME in Silicon

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:

  • OSGi Middleware
    aJile supports the following OSGi frameworks:
  • JME API's
    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
  • Java Software Drivers
    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
  • Evaluation System