Home Page Contact Info
Other Embedded Products
Download proc


nilsen elektronikk as offers a free compact modular real-time kernel, optimal for embedded systems. Available with full documentation and source code, the real-time kernel proc is a professional component for building complex software for embedded systems and PC. The first proc version was available in 1986. proc real-time kernel is a library of functions you can link to your application program. proc is fast, compact and modular. Since proc is available for DOS as well, much of the development and debug work can be done on a PC. Combined with NMX Message Exchange, a distributed Real-Time system can easily be made.

How much space does proc occupy? Supported architectures:
  • minimum configuration: 691 bytes
  • + plus process termination: 898 bytes
  • + plus channels: 1432 bytes
  • + plus channels and packets : 1951 bytes
  • maximum, the entire kernel: 3115 bytes

Target: 68HC11 using IAR C compiler

  • x86 / PC
  • 68HC11, (also banked)
  • H8, (8 and 16 bits)
  • 68k / 6833x
  • ColdFire
  • 80C196
  • C167
  • AVR
  • i960Jx
  • MSP430
  • Z180

proc Features

  • The number of processes is unlimited.
  • No static set-up. Processes can be included and removed during runtime
  • Process priority can be changed during run-time.
  • Pre-emptive and interrupt driven scheduling.
  • Semaphores.
  • Byte-wide channels. Blocking and non-blocking functions.
  • Packets. A packet is a block of arbitrary size, passed by a pointer queue.
  • Timers. Start and stop. At time-out, a process is woke up. The number of timers is unlimited.
  • The only processor dependent code is scheduling (assembly-written) and process stack building (C), about 10% of the source code.
  • Portable
  • ANSI C source code
  • Examples included


NMX Message Exchange

The Message Router is a supplement module and integrates smoothly with proc.

The message exchange provides an effective, flexible, convenient and robust way to pass messages between processes. Much like telephone subscribers, different processes can connect to an exchange. There is one exchange per physical processor.

Exchanges can be connected in a network, but the concept is also attractive in systems with one processor, as the message passing system becomes very convenient and elegant.

In the local domain, i.e. within an exchange, messages are passed by pointers. This gives high throughput.

NMX Message Exchange:
  • is plain ANSI C code. It is hardware and platform independent. It avoids use of architecture specific and other exclusive features.
  • is symmetrical and compact.
  • is easy to configure.
  • accepts run-time re-configuration.
  • accepts configuration tables in ROM or RAM.
  • is internally impossible to dead-lock.

The figure shows an example configuration:



Download proc