Common Overview#

Specifications#

LIB#

  • Provides a clean, organized, and ANSI C-compatible implementation of the most common standard library functions, macros, and constants.

  • Independent of and compatible with any processor (CPU) and compiler.

  • Memory footprint can be adjusted at compile time, based on the features you need and optimal run-time performance.

  • Designed and implemented with safety-critical certification in mind.

  • Intended for use in any high-reliability, safety-critical systems including avionics RTCA DO-178B and EUROCAE ED-12B, medical FDA 510(k), IEC 61508 industrial control systems, and EN-50128 rail transportation and nuclear systems.

For example, the FAA (Federal Aviation Administration) requires that all the source code for an application be available in source form and conform to specific software standards in order to be certified for avionics systems. Since most standard library functions provided by compiler vendors are in an uncertifiable binary format, this module offers an alternative by providing its library functions in certifiable source-code format.

  • Source available, and conforms to the Micrium's coding standard.

KAL#

  • Currently supports the following kernels:

    • Micrium's µC/OS-II

    • Micrium OS Kernel

Features#

Authentication#

  • Set rights for any number of users at run-time.

  • Can validate credentials (name and password) for a user before executing a specific operation.

  • No hierarchy between users.

LIB#

  • Memory allocation and management, including:

    • Segments

    • Blocks

    • Dynamic pools

  • Memory-related utilities (manage endianness conversion).

  • String-related utilities (string length, copy, compare, replace, formatting, etc.).

  • ASCII characters operations (lowercase/uppercase conversion, #defines, etc.).

  • Bit operations (clear, set, mask, etc.).

  • Basic random number generator.

  • Various useful defines.

KAL#

  • Allows you to specify a single location where to allocate all the kernel data used by other modules.

  • Facilitates the use of any kernel with any Micrium OS component, where only one abstraction layer needs to be changed.

  • Factorizes every kernel abstraction layer into a single element.

Logging#

  • Configures multiple channels independently.

  • Hierarchical configuration that can inherit configuration from a parent channel.

  • Three logging levels that can apply filters to display only the required information.

  • Any putchar-like function can be used to output data.

  • Synchronous and asynchronous modes are available.

  • In asynchronous mode, an internal ring buffer keeps the most recent logging entries and the application can choose when to output them.

RTOS_ERR#

  • Single, unified error type for every Micrium OS module.

  • Provides a string description for every error.

  • Provides several utilities to determine the files and lines where errors occur.

Shell#

  • Shell interface available for Micrium modules.

  • Parses and executes commands via the command line.

  • Adds additional commands easily.

Toolchain#

  • C standard version and toolchain detection.

  • Macros to void unused function parameters or align specific data in memory for several toolchains.

Limitations#

Auth#

  • The maximum number of distinct, exclusive rights that can be defined is set to 28.

LIB#

  • By design, variable argument library functions are not supported.