11extern EventGroupHandle_t xTaskEnableGroup;
22void vIdle(
void *argument) {
24 enum State *flightState = StateHandle_getHandle(
"FlightState").state;
25 MemBuff *mem = (MemBuff *)argument;
29 if (*flightState >= LAUNCH && mem->pageReady)
30 xEventGroupSetBits(xTaskEnableGroup, GROUP_TASK_ENABLE_FLASH);
43void vFlashBuffer(
void *argument) {
44 const TickType_t timeout = portMAX_DELAY;
45 uint32_t pageAddr = 0;
48 MemBuff *mem = (MemBuff *)argument;
53 EventBits_t uxBits = xEventGroupWaitBits(xTaskEnableGroup, GROUP_TASK_ENABLE_FLASH, pdTRUE, pdFALSE, timeout);
54 if (uxBits & GROUP_TASK_ENABLE_FLASH) {
56 bool success = mem->readPage(mem, outBuff);
61 flash->
writePage(flash, pageAddr, outBuff);
DeviceHandle_t DeviceList_getDeviceHandle(DeviceKey)
Retrieve device handle from list by key.
int pageSize
Number of bytes per page.
void(* writePage)(struct W25Q128 *, uint32_t, uint8_t *)
Write page method.
long pageCount
Total number of pages.