Abassi RTOS for Cortex-A9

Highlights


    1. Fully scalable footprint (as low as 1575 bytes on Cortex-A9; full: <4000 bytes)
    2. Fast Execution (28 clock cycle context switch; 160 clock cycle task switch on semaphore posting)
    3. Unlimited Tasks, Queues, Events, Semaphores, Mutexes and Mailboxes
    4. Flexible licensing options
    5. Comprehensive documentation and full source code
    6. Responsive Technical Support

Multicore Ready

Full support for multicore platforms, including the Altera Cyclone V, Freescale i.MX6, Xilinx Zynq-7000, and TI OMAP4430 and OMAP4460. With a simple recompile, get automatic, multicore SMP, in less than 6 kilobytes.

Unmatched Feature Set

In addition to the standard feature set supported by most real-time kernels, the Abassi RTOS can be configured with many features unmatched in the industry. These features add robustness and code savings, and include:


    1. Intelligent starvation protectionGuarantees fair access to CPU, via enhanced priority aging, even on heavily loaded systems.
    2. Priority inheritance, including dynamic trackingAutomatically adjusts for priority aging, timeouts, etc. and propagationBetween entangled mutex owners, to prevent deadlock.
    3. Adaptive priority ceiling
    4. Deadlock detectionReports recursive mutex dependencies anywhere in the execution chain.
    5. AsymmetricTimeslice adjustable at a per task level. Round Robin scheduling

Development Tool Choices

Abassi supports major ARM development tools, including Code Composer Studio.

Demonstration Package

Atollic CCS IAR Keil
Panda OMAP4460 ES 3
Demo 3: Complex demo that shows the operations of some unique features of the Abassi RTOS. Operational characteristics of the tasks can be modify through the serial port.

Details of each of the demonstrations can be found here.

Memory Requirements

Don't settle for half a RTOS! Even with all features enabled, Abassi still consumes less memory than the minimum configuration of most kernels. And you get advanced priority inheritance, asymmetric round-robin scheduling, starvation protection, and much more. Or, if memory footprint is paramount, Abassi scales to a minimum size that can't be matched.

"C" Code Memory Usage
Description Size
Minimal Build <775 bytes
+ Runtime service creation / static memory <1025 bytes
+ Multiple tasks at same priority <1125 bytes
+ Runtime priority change
+ Mutex priority inheritance
+ FCFS
+ Task suspension
<1550 bytes
+ Timer & timeout
+ Timer call back
+ Round robin
<2075 bytes
+ Events
+ Mailbox
<2700 bytes
Full Feature Build (no name / no runtime creation) <2825 bytes
Full Feature Build (no names) <3225 bytes
Assembly Code Memory Usage
Description Size
Assembly code size 804 bytes
VFPv3 +128 bytes
VFPv3D16 +116 bytes
Saturation Bit Enabled +36 bytes

For your exact data memory requirements, please consult the Porting Document that applies to your design environment.

Kernel Snapshot

  1. Available Symmetric Multiprocessing
  2. Fully preemptive
  3. Scalable
  4. Very small code and data footprint
  5. Code can reside in ROM
  6. Zero interrupt latency kernel
  7. Mutexes
    1. Configurable priority inheritance
    2. Adaptive priority ceiling
    3. Priority based and first-come, first-served
  8. Versatile semaphores
    1. Counting and binary
    2. Priority based and first-come, first-served
  9. Mailboxes
    1. Priority based and first-come, first-served
  10. Events
  11. Intelligent starvation protection
  12. Deadlock detection
  13. Single or multiple tasks per priority level
  14. Configurable Round Robin
  15. Dynamic priority changes
  16. Compile time task and component creation
  17. Run-time safe service creation
  18. No fixed number of tasks or components
  19. Programmable timeout on components
  20. Selectable scheduling search algorithm
  21. Optional cooperative mode
  22. Debug logging