Mercurial > public > ostc4
diff wiki/Modules.md @ 489:0e7c16dd774d
add wiki sub-directory
author | heinrichsweikamp |
---|---|
date | Mon, 29 Jun 2020 16:18:17 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wiki/Modules.md Mon Jun 29 16:18:17 2020 +0200 @@ -0,0 +1,38 @@ +# OSTC4 Code Modules # + +## Main CPU - aka CPU1-Discovery ## + +For historical reasons, the firmware of the main CPU was divided in three parts. +It helps development, allow smalled upgrades, and improve security as a bad manipulation won't kill the bootloader, responsible fot the next firmware upgrade. + +### Bootloader ## + +The code responsible to upload new firmwares for both CPU. + +### Font Pack ### + +This module does not contains any code. Just font data and images. + +### Firmware code ### + +The main OSTC4 firmware. The more important modules are: + +- Buehlmann decompression algorithm. +- VPM decompression algorithm. +- The simulator and dive planner. +- Logbook display (surface and dive mode). +- All user interface code, during dive or surface mode (`t*.c` files). +- Graphics (gfx) engine. +- Plus interface to the other CPU, the management of the _LCD_ screen, and the optional _Bonex_ scooter interface (No longer supported) + +## Small CPU - aka CPU2-RTE ## + +The _Real Time_ CPU handle everything that requires precise timming to function perperly. + +The most important modules are: + +- Real time computation of gas exchanges during dive (aka the _LifeData_ structure). +- Analog to digital conversion for the ... ambient light sensor. +- I2C bus interface to the pressure sensor, the magnetic compass and the battery gauge. +- SPI bus interface to the buttons and to the other CPU. +- Serial interface to the _RS232-over-Wireless_ connection. \ No newline at end of file