diff options
| author | Avamander <avamander@gmail.com> | 2020-10-02 18:44:27 (GMT) |
|---|---|---|
| committer | Avamander <avamander@gmail.com> | 2020-10-02 18:44:27 (GMT) |
| commit | 40a643d203d2d21834dd2b35d83419a56a3939b6 (patch) | |
| tree | 522947ffe2e7c10f6e8c45a6e7d1e58d3521829b /src/components/FirmwareValidator/FirmwareValidator.cpp | |
| parent | 455d8319e4af521de4e24cfa423a4c06c4378a8d (diff) | |
Renamed Components/ to components/
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(); +} |
