The software written for this project was built of a real time operating system called "ChibiOS". ChibiOS was written to be used on many platforms but performs exceptionally well on the ARM platform our board uses. The primary reasons a real time operating system was selected was the use of threading and the use of drivers. ChibiOS provides implementation for the Hardware Abstraction Layer (HAL) for the STM32F4 processors. Using HAL adds the ability to using the preipherals available on the processor easily. Using ChibiOS helps in developing low level drivers for the different communication protocols used on the board.
Below is a graphical representation of our system and the busses which are used to communicate with the sensors.