Skip to content

Ge Wit't Oit Noit Nie Firmware

Om het overzichtelijk te houden, is er een losse bibliotheek gemaakt voor Ge Wit't Oit Noit Nie. De bibliotheek is te vinden in {workspace}/Middlewares/gwtonn.

FreeRTOSprogram controllerLoggerFATFSSD CardSPIInternal Sensorsstart threadstart threadsend telemetry
FreeRTOSprogram controllerLoggerFATFSSD CardSPIInternal Sensorsstart threadstart threadsend telemetry

FreeRTOS

Als basis wordt gebruik gemaakt van FreeRTOS (CMSIS v2 implementation). Verdere details zijn te vinden op deze pagaina: https://arm-software.github.io/CMSIS-FreeRTOS/latest/index.html

Programma controller

Voor het uitvoeren van de programma, is er een programma controller. De details staan beschreven in programma controller.

Logger

De logger implementeerd functionaliteiten om een log te schrijven op een SD kaart (Via de SPI Interface). Omdat schrijven via de SPI naar SD enige tijd kan duren, wordt deze logger in een separate thread gestart. Deze thread kan voorzien worden van informatie via een message queue.

Note

De void start_logger(void *argument) is geimplementeerd in the bilbiotheek. De functie is __weak gemaakt in freertos.c. Om dit te laten werken, is in de STM32CubeMX programma een FreeRTOS taak gemaakt met de naam logTask en de functie start_logger. De Code Generation Option is ingesteld op As Weak.

Voor details over de logger, kijk in de hoofdstuk over de logger.

FatFS met de SD Card Controller via SPI

Om bestanden te kunnen maken op een SD kaart, gebruiken we een SD Card reader. Deze wordt aangesloten via een SPI Interface met de Nucleo board. Vervolgens gebruiken we de FatFS library om een bestandsysteem te simuleren.

De FatFS staat aangemerkt als USER_Driver in STM32CubeMX. Deze userdriver is gedefineerd in user_diskio.h en geimplementeerd in user_diskio.c.

De vertaalslag van de FATFS implentatie naar SPI commando's gebeurt in user_diskio_spi.c.