uKOS-II:  µKernel Project

20th of May 2013

Night work counter = 1225

v. 2.0.5

 

uKOS

uKOS is a multi-tasking OS suitable for small embedded µController systems. I developed uKOS early in 1992 during the Khepera mobile robot project. When I designed Khepera I had to think about “how to write code to control it”. So, this was the starting point of uKOS. The first implementation was written in CALM assembler (a LAMI-EPFL tool). I have completely rewritten uKOS in C in 1996; the used host computer was a Mac running OS9 with the MPW environment. Now Apple has switched to OSX (unix world) and I decided to reactivate and update it, and to share the ideas and the experiences cumulated during this project and use GCC environment to maintain it. All the sources will be available for a download. I consider this development as an open source project.

I hope that this project can interest all the people that would like to be inspired by all the work I did (or to use it). I do not ask royalties or licenses for the usage of all this project (schematics or sources).


I hope to increase the quality of this work thanks to all the feedbacks, suggestions, recommendations, etc. I will receive.

Please, consult regularly the download page to discover all the latest documents, application notes, etc.

Supported targets

ARM Cortex M4 (STM32F407)

ARM Cortex M3 (STM32F103)

CSEM IcyCAM SoC (icyflex-1)

Coldfire (discontinued)

CPU32 (discontinued)

...


Main features of the µKernel

Up to 255 static processes

Overlay processes for limited resources CPU-ASIC implementations

Up to 255 dynamic priorities

Preemptive multitasking

Support of supervisor/user spaces

Time management

  1. -Process time-out

  2. -Process suspension

  3. -Actions waiting under time-out

  4. -Support of the Unix time


Up to 255 static semaphores

Up to 255 interprocess associations

Up to 255 interprocess mailboxes

Process-to-process synchronization

CPU statistics

Customizable to other CPUs via stubs

Romable


The µKernel is fully customizable; this could be required in applications where memory or hardware resources are limited.


Available free packages:

OS (IcyCAM and Cortex M3-M4 versions)

  1. -Sources of the OS modules and the µKernel for the following CPUs

  2. -Icyflex-1 (CSEM - IcyCAM)

  3. -Cortex M3 (STM32F103)

  4. -Cortex M4 (STM32F407)

  5. -Support of the multi-thread newlib


Application notes and book

  1. -Introduction

  2. -The Cortex-M4 board

  3. -uKOS System Calls

  4. -The uKOS system

  5. -The µKernel

  6. -Inside uKOS

  7. -The uKOS Package

  8. -GCC Toolchains for Cortex M3-M4, blackfin, icyflex-1, CPU32, ColdFire

  9. -The I2C0 manager

  10. -A standalone µKernel application


Commercial issues

Free packages under GPL3