uKOS - µKernel Project

14th of August 2010

Night counter = 1061

 

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

Freescale CPU32 (6833x)

Freescale ColdFire (M523x)

CSEM IcyCAM SoC


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. -Action waiting under timeout


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 and IcyCAM versions)

  1. -Sources of the OS modules and the µKernel

  for the following CPUs

- All CPU32

  1. -Coldfire (M5234)

  2. -Icyflex-1 (IcyCAM)

  3. -Support of the multithread newlib


Applications 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, ARM, blackfin, icyflex-1

  9. -The i2c0 manager

  10. -A standalone µKernel application


Commercial issues

Free package under GPL3