Skip to content

iac26/SanpellegrinOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SanpellegrinOS

About

Small real time operating system for the atmega328p mcu.

Features

Interrupts

OS managed interrupts

When an OS managed interrupt happens, we store the context, handle the interrupt and run the scheduler to determine which thread should continue execution

Peripheral interrupts

Peripheral managed interrupts act as normal interrupts.

System Tick

The system tick is generated by the timer0 output compate A interrupt. This is an OS managed interrupt as it might trigger a rescheduling.

Threads

Each thread owns an execution context, all the threads are executed concurrently. The threads can have multiple states: * running -> thread currently running * ready -> thread ready to run * suspended -> thread suspended for a specific ammount of time * waiting -> thread waiting on an event * disabled -> thread disabled

Delays

Events

Scheduler

The scheduler keeps track of the states of each thread and handles the arbitration between all the threads that are ready to be executed

HAL

Port layer

User program

Sensors (I2C)

Radio (SPI)

Logging (EEPROM)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published