21 lines
489 B
C++
21 lines
489 B
C++
|
#include <drivers/InternalFlash.h>
|
||
|
#include <hal/nrf_rtc.h>
|
||
|
|
||
|
#include "FirmwareValidator.h"
|
||
|
|
||
|
using namespace Pinetime::Controllers;
|
||
|
|
||
|
bool FirmwareValidator::IsValidated() const {
|
||
|
auto* imageOkPtr = reinterpret_cast<uint32_t *>(validBitAdress);
|
||
|
return (*imageOkPtr) == validBitValue;
|
||
|
}
|
||
|
|
||
|
void FirmwareValidator::Validate() {
|
||
|
if(!IsValidated())
|
||
|
Pinetime::Drivers::InternalFlash::WriteWord(validBitAdress, validBitValue);
|
||
|
}
|
||
|
|
||
|
void FirmwareValidator::Reset() {
|
||
|
NVIC_SystemReset();
|
||
|
}
|