The EdX51 Operating System

Introducing the operating system developed by James Rogers, the creator of EdSim51.

The EdX51 operating system was designed as a teaching/learning tool. It provides operating system services to application programmers developing systems that run on 8051 microcontrollers and their derivatives. The OS was written in C using Keil’s µVision IDE together with Keil’s C51 compiler.

Download EdX51, its documentation and an example program from SourceForge.

Depending on the configuration, EdX51 uses between 592 and 1795 bytes of code memory.

The scheduler is cooperative and tasks have quasi-priority that is fixed at compile time. There is no task preemption. A task runs until it blocks. Once it blocks, the scheduler hands the CPU to the first ready task it finds in the list of tasks. The ordering of the list of tasks is determined by the order in which the tasks are created by the application programmer using os_taskCreate(). In this way, the application programmer can assign quasi-priority to the tasks (by passing higher priority tasks to os_taskCreate() before lower priority tasks). While a high priority task will not preempt a lower priority task, it will get the CPU before a lower priority task once the running task blocks.

EdX51 provides a semaphore service, a message queue service and a watchdog timer service. These features can be easily removed if they are not required, thereby saving code and data memory.

All the information on EdX51 can be found in its documentation. Download now for free.

Copyright Notice: EdX51 is available free of charge.
No part of EdX51, including the code and documentation, may be sold for profit or included in a package that is sold for profit without written authorisation from James Rogers.
Contact: edsim51@gmail.com