Home $5K RTOS Bundle Technical Support The Blunk Difference Contact Us

TargetOS Lite

Embedded Real-Time Kernel

The TargetOS lite kernel is an API compatible subset of the full TargetOS kernel that supports only the following objects:

  • Tasks
  • FIFO-mode binary and counting semaphores
  • SW timers
  • Regions for malloc()-like memory allocations
  • Interrupt service routines

These are - in fact - the only kernel objects used by Blunk’s file systems, graphics, networking, and USB stacks so the lite kernel fully supports all Blunk middleware components. The lite kernel was designed for minimal code/RAM footprint and minimal lines of code (for certification purposes).

The lite kernel uses approximately 18KB of code and 5KB of RAM (assuming 1KB stacks). The per-timer RAM footprint is 32 bytes. The per-semaphore footprint is either 16 bytes or - if the compile-time option to exclude semaphore names is used - 8 bytes.

No compromises have been made in performance. As shown by the semaphore benchmarks below, both kernels are equally fast:


Semaphore Test

Lite Kernel

Full Kernel

semPend() with waiting token

0.1 usec

0.1 usec

semPost() with no task waiting

0.1 usec

0.1 usec

semPost() with task made ready, no switch

0.3 usec

0.3 usec

semPost() with context switch

0.4 usec

0.4 usec

semPend() with context switch

0.5 usec

0.5 usec

Xilinx ZC702 Zynq eval kit (111 MHz Cortex-A9) using GCC 4.9.3


The TargetOS full kernel can be used when any of the following features are required:

  • Priority-mode binary or counting semaphores
  • Queues: ability to post 32-bit queued messages
  • Mutexes: priority-mode binary semaphores with priority inheritance
  • Nexuses: ability to post events to a group of tasks by a single call
  • Task suspend/resume support

The post-every and post-after timer routines of the full kernel are not present in the lite kernel, but can be implemented by tmrCallAfter(), which is supported by both kernels.