diff options
| author | JF <jf@codingfield.com> | 2020-08-11 15:50:00 (GMT) |
|---|---|---|
| committer | JF <jf@codingfield.com> | 2020-08-11 15:50:00 (GMT) |
| commit | bbfc20c3ff4b741cd21b162389905a59a8e22f3f (patch) | |
| tree | 75b8e00398b14aa8b887013e93adcb0edecfe75f /src/Components/FirmwareValidator/FirmwareValidator.cpp | |
| parent | 27fa273d8315f972931dba7971a99b0fbba7360e (diff) | |
Add new screen that allows the user to manually validate the new firmware he's just OTA'ed.
Still need to find a way to display this screen when needed.
Diffstat (limited to 'src/Components/FirmwareValidator/FirmwareValidator.cpp')
| -rw-r--r-- | src/Components/FirmwareValidator/FirmwareValidator.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/Components/FirmwareValidator/FirmwareValidator.cpp b/src/Components/FirmwareValidator/FirmwareValidator.cpp new file mode 100644 index 0000000..244d5c0 --- /dev/null +++ b/src/Components/FirmwareValidator/FirmwareValidator.cpp @@ -0,0 +1,20 @@ +#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(); +} |
