view wiki/Modules.md @ 678:05cdd367dbd0 Betatest

Bugfix: deco planner did not initialize properly Redoing a deco calculation in the planner, after a change in used gasses, did result in wrong gas usage figures. And a restart after sleep made things right again. This all feels like some initialization problem. Nothing very important as it's only a desktop planner, but a bug it is. Code reading, I found the not correctly initialized data. Reported-by: Teun (forum user tdewilt2) Signed-off-by: Jan Mulder <jan@jlmulder.nl>
author Jan Mulder <jan@jlmulder.nl>
date Thu, 21 Apr 2022 21:02:50 +0200
parents 0e7c16dd774d
children
line wrap: on
line source

# 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.