10#include "event_groups.h"
15#include "devicelist.h"
20#include "stm32f439xx.h"
21#include "flashwrite.h"
23extern EventGroupHandle_t xTaskEnableGroup;
34void vApplicationIdleHook() {
39 if (state->flightState >=
LAUNCH && state->mem.pageReady)
40 xEventGroupSetBits(xTaskEnableGroup, GROUP_TASK_ENABLE_FLASH);
52void vFlashBuffer(
void *argument) {
53 const TickType_t timeout = portMAX_DELAY;
54 uint32_t pageAddr = 0;
63 EventBits_t uxBits = xEventGroupWaitBits(xTaskEnableGroup, GROUP_TASK_ENABLE_FLASH, pdTRUE, pdFALSE, timeout);
64 if (uxBits & GROUP_TASK_ENABLE_FLASH) {
67 bool success = state->mem.readPage(&state->mem, outBuff);
71 flash->
writePage(flash, pageAddr, outBuff);
Defines the API for Flash memory storage.
int pageSize
Number of bytes per page.
long pageCount
Total number of pages.
void(* writePage)(struct Flash *, uint32_t, uint8_t *)
Write page method.
DeviceHandle_t DeviceList_getDeviceHandle(DeviceKey)
Retrieve device handle from list by key.
@ LAUNCH
Body reference Z-axis acceleration above threshold.