The JenOS OS is a task based. single stack, priority driven, pre-emptive operating system for Arm M3 and similar processors that include the NVIC interrupt management hardware.
Tasks are standard C functions that share a common parameter in a particular project. The parameter is typically a pointer to a structure and is used for message passing.
Tasks have priorities and a high priority tasks will preempt those lower priority. The low priority task will proceed normally when the high priority task concludes.
Task may be scheduled from interrupt functions. This uses the Arm PendSV/SVC hardware in the background so peripheral interrupts conclude in the normal way.
Support is provided for the Arm Systick timer to provide delayed task starting, where a task can be scheduled to begin some number of clock ticks in the future.
Counting semaphores are provided to protect serial resources and peripherals. Mechanisms for managing protected I/O are built in.
Features
- Single stack, pre-emptive operating system