/* * TaskBG.c * * Created on: Jul 31, 2024 * Author: fw */ #include "CommBuffers.h" #include "NVDataMgmt.h" static SW_UPDATE_BUFFER_STATUS_T bufferStatus; void taskBackground( void ) { #ifndef _VECTORCAST_ // Cannot have infinite loop in unit test tool while ( 1 ) #endif { getSWUpdateBufferStatus( &bufferStatus ); if ( ( TRUE == bufferStatus.isSWUpdateBufferReady ) && ( UPDATE_FIRMWARE == bufferStatus.dest ) ) { _disable_IRQ(); U08 dataToWriteToFlash[ SW_UPDATE_FLASH_BUFFER_SIZE ]; getSWUpdateBuffer( dataToWriteToFlash ); handleUpdatingFlash( dataToWriteToFlash ); _enable_IRQ(); sendAckNackStatusFromFirmware( ACK, FALSE ); clearSWUpdateBuffer( FALSE ); } } }