uKOS - µKernel Project
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
-Process timeout
-Process suspension
-Actions waiting under timeout
-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
-Schematics of the Andras-68k board
-PCB + CPLD design
OS (CPU32, M5234, IcyCAM and Cortex M3 versions)
-Sources of the OS modules and the µKernel for the following CPUs
-All CPU32
-Coldfire (M5234)
-Icyflex-1 (IcyCAM)
-Cortex M3 (STM32)
-Support of the multithread newlib
Application notes and book
-Introduction
-The Andras 68k board
-uKOS System Calls
-The uKOS system
-The µKernel
-Inside uKOS
-The uKOS Package
-GCC Toolchains for CPU32, ColdFire, Cortex M3, blackfin, icyflex-1
-The i2c0 manager
-A standalone µKernel application
Commercial issues
Free package under GPL3