BOS Logo BOS Operating System

Home News Introduction Documentation Versions History Movies BOS board Preview


BOS is a multitasking modular operating system realized for small microcontrollers without memory management. BOS is always compiled from sources and only really necessary functions are inserted into the executable created file; this way generated files are always optimized and small. Minimum system size with Task manager and one task created and running task is 1792 bytes. Some examples are provided to show BOS working with tasks, a matrix keyboard, a dot matrix display, an external I2C temperature sensor, 16 leds attached to SIPO pin extension and a buffered serial port. Actually BOS is realized for MSP430 microcontrollers but it can be ported to other platforms; hardware requirement to be BOS capable is just a timer to implement task preemption.

Here is presented the BOS structure :

BOS Structure


Watchdog Watchdog management is fully automatic if task manager is enabled, otherwise standard functions are provided to reset watchdog
Timers All system timers are accessed through HAL timer component
Clock System clock source can be configured in this component to provide correct clock to CPU core and peripherals
Interrupts Basic interrupt management is implemented in HAL, more advanced functions are in kernel layer


Task Manager Preemptive task manager creates different CPU threads that virtually run simultaneously
Critical Sections Special code that cannot be interrupted by task preemption can be inserted in critical sections
Events Threads synchronization object and interrupts tasks wakeup
Semaphores A way to synchronize tasks data access. This component locks access to tasks shared resources
Interrupts Full interrupt management is provided to cause interrupts to call a user defined callback and/or signal an event to wake up a waiting task

Internal peripherals drivers

Debug Driver This driver informs about system state and resources usage through a serial port
Flash Driver Internal CPU user flash memory manager
GPIO Driver General purpose input output microcontroller pins management
Serial Ports Microcontroller integrated serial ports (UARTS) advanced buffered driver

External peripherals drivers

Keyboard Matrix keyboard attached to GPIO pins driver
Display Dot matrix LCD display (Hitachi HD44780 compatible models) of user defined size manager
GPIO I2C Full software I2C master driver that can manage a user defined number of I2C buses attached to microcontrollers GPIO pins
I2C Temp An example how to use GPIO I2C driver to read temperature from external attached component (Texas Instuments TMP175)
SIPO An example how to extend number of available GPIO pins with a Serial In Parallel Output (SIPO) chip using only three microcontroller GPIOs

BOS - operating system - Luca Bertossi - Logo hosts BOS operating system