TargetOS™

More than just a kernel, Blunk Microsystems’ TargetOS is a full-featured real-time operating system (RTOS) designed for embedded applications. It has the following integration features:

Standard C Support

  • Real-Time clock driver interface to support the time.h routines.
  • Thread-safe stdlib.h library for calloc(), malloc(), free(), etc.
  • UART driver interface to support the stdio.h routines.

Driver Interface and API for the following devices:

  • EEPROM
  • UART
  • I2C - including NVRAM and RTC drivers
  • NVRAM
  • PCI - bus scan and initialization
  • SPI - including flash and NVRAM drivers
  • Hardware Timers
  • Flash Memory

Support for scaled error response

  • Per task errno values
  • Shared error function per middleware component (ex UsbError()) gives single breakpoint for all application code errors using that component, as debugging aid.
  • Middleware components can provide custom perror() responses.
  • Unique error codes per middleware component.
  • Fatal errors logged in NVRAM with TOD, name of task or ISR, PC, SP and errno values.
  • Compile-time option makes all service call errors fatal to help catch simple errors early.

Optional command line shell

  • Supports Cisco-style line editing.
  • Includes command history, accessible via up/down keys.
  • Extensible with user commands.
  • Accessible via UART and Telnet.
  • Can run from a task or break into from any task - if enabled - via Ctrl-C.

Optional Boot Menu

  • Only runs if ’m’ is entered before short timeout after start-up. Can exclude at compile-time or run read-only to display configuration parameters.
  • Interactively edits configuration parameters stored in NVRAM.
  • Optional Flash programmer installs TargetOS applications into flash, supports ELF and S-record formats, accepts input from either a file, UART channel, or TFTP.
  • Sets boot mode: TFTP boot loader, any of multiple applications in a file system or flash memory, or TargetMon debug monitor.

Optional First Stage Boot Loader (FSBL)

  • Boots from flash, uses internal SRAM. Uses minimal RAM/ROM.
  • Loads application code, FPGA bitstreams, etc. from TargetBFS flash file system.
  • Optionally uses TargetFAT-lite/TargetSD-lite to load code, bitstreams, etc. from SD Cards.
  • Optionally uses TargetUDP/TFTP to load code, bitstreams, etc. over network via Ethernet.
  • Optionally starts TargetMon or any application in file system.
  • Supports robust atomic application code updates.
  • Optional SDRAM test program, may be extended to other HW tests.

Flexible support for three boot methods

  • Boot from flash/execute from flash. Suitable for flash-based microcontrollers with a limited amount of SRAM. Code updates require an on-chip solution (BDM or JTAG). Debug is limited to a few HW breakpoints. Boot menu updates NVRAM settings for baud rate, IP address assignment, etc.
  • Boot from flash/execute from RAM. Preferred if RAM amount is large. Position-independent code at CPU reset vector copies the executable to RAM and jumps to it. Provides higher performance (wider bus and better bursting support), unlimited SW breakpoints, and support for TFTP code updates (though an interrupted update could brick your device). Boot menu updates NVRAM settings for baud rate, IP address assignment, and starting mode as either main application, TFTP loader, or TargetMon (for debugging over Ethernet).
  • FSBL boots from flash and uses on-chip SRAM. Executable is loaded from file system to SDRAM. Provides high performance (SDRAM wider bus and better bursting support), unlimited SW breakpoints, and support for TFTP atomic file updates that cannot brick your device. Boot menu updates NVRAM settings for baud rate, IP address assignment, and starting mode as either any application in the file system, TFTP loader, TargetMon (for debugging over Ethernet), or SDRAM test program.

Advanced features

  • No compile-time limit on the number of tasks, semaphores, etc.
  • Stack overflow and low-water mark checking.
  • Separate stack for interrupt service routines.
  • Supports priority inheritance mutexes.
  • Interrupt service routines can post semaphores, messages, events.
  • Kernel routines are direct function calls, no trap handler overhead.
  • Deterministic: time variant kernel processing performed by low priority daemon.
  • Advanced kernel-awareness: state of kernel objects, kernel event trace display.
  • Supported by family of integrated middleware: file systems, networking stacks, USB stack, and graphics library.
  • First Stage Boot Loader performs low-level initialization and loads first TargetOS application from TFTP or flash, optionally using the TargetBFS boot loader file system for executable images and/or FPGA bitstreams.

TargetOS is seamlessly integrated with CrossStep™, Blunk Microsystems’s IDE for embedded development that includes an integrated project builder, kernel-aware source code debugger, instruction set simulators, on-chip debug connections for board bring-up and fast Ethernet debug connections for application development.

Blunk’s long experience providing BSPs and device drivers to the embedded community means you won’t have to turn elsewhere for the complete solution you need. Blunk supports a large number of off-the-shelf BSPs and drivers, and provides reasonable quotes for custom BSPs and drivers.

You can reduce project costs with an RTOS Bundle subscription license that includes source code, technical support, complete documentation, and sample applications.

TargetOS includes a full-featured high performance kernel. See list of kernel features here.