I've used this kernel on a number of different embedded systems based on the
ARM procesor. It supports multiple concurrent "tasks" to be running, with very
low "overhead" in manageing them.

Processes are on "priority rings" - when all in a ring have been run, one from
the next lower ring runs. Critical real-time tasks -> higher rings, less real-
time tasks -> lower rings, with non-real time things happening at the bottom.

NOTE: It is NOT a "general" time-shareing system:

- Processes are NOT automatically interrupted/swapped based on a "timeslice"
- "" must volentarily "give up" their "execution slice" on a regular basis.
  This is very simple, all that has to done is call the OS_swap() service.

This means processes control when they can be swapped out, and there is no
overhead in handling "race conditions" or other things common in multitasking
systems which require (often considerable) extra work to avoid.

You can handle polling of events quite efficiently:

    while(!event_occured)
        OS_swap();

It also means processes have to "follow the rules" - if you don't OS_swap()
often enough, you can seriously affect system real-time performance.


Over the years some of my clients had other real-time kernel vendors approach
them to persuade them to go that companies route - pretty much all of them
looked at how our system performed and said "We can't match that"!


It's been quite a few years since I looked at this, never offered it as a DDS
"product", and therefore had to extract it from a system I had used it within.
There may be some "artifacts", but it should be fairly complete and functional.


**FWIW: In the day I built this with "ARM Software Development Toolkit" which
        IIRC came directly from "Advanced Risc Machines" - The manuals I have
        say "Version 2.0" - The bits needed here are:
    Norcroft  ARM C vsn 4.66d (ARM Toolkit v2.02) [Mar  8 1996]
    ARM AOF Macro Assembler vsn 2.34d (ARM Toolkit v2.02) [Mar 12 1996]
    ARM Linker vsn 5.02h (ARM Toolkit v2.02) [Mar  8 1996]
    ARM make utility Version 4.02b (ARM Toolkit v2.0) [Oct  4 1995]


Dave Dunfield   -   https://dunfield.themindfactory.com
