uKOS - µKernel Project

9th of December 2011

Night work counter = 1110

 

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).


Donation could be fulfill and the totality of this amount will be donated for a human task.



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 M3 (STM32)

CSEM IcyCAM SoC (icyflex-1)

Freescale ColdFire (M523x)

Freescale CPU32 (6833x)


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 timeout

  2. -Process suspension

  3. -Actions waiting under timeout

  4. -Support of the Unix time


Up to 255 static semaphores

Up to 255 interprocess associations

Up to 255 interprocess mailboxes

Process-to-process synchronizations

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:

Hardware

  1. -Schematics of the Andras-68k board

  2. -PCB + CPLD design


OS (CPU32, M5234, IcyCAM and Cortex M3 versions)

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

  2. -All CPU32

  3. -Coldfire (M5234)

  4. -Icyflex-1 (IcyCAM)

  5. -Cortex M3 (STM32)

  6. -Support of the multithread newlib


Application notes and book

  1. -Introduction

  2. -The Andras 68k board

  3. -uKOS System Calls

  4. -The uKOS system

  5. -The µKernel

  6. -Inside uKOS

  7. -The uKOS Package

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

  9. -The i2c0 manager

  10. -A standalone µKernel application


Commercial issues

Free package under GPL3