diff --git a/memory.c b/memory.c index e49a3155f1..496d39e6c1 100644 --- a/memory.c +++ b/memory.c @@ -22,16 +22,16 @@ #include "memory.h" #include "sha2.h" -#define OPTION_BYTES_1 ((uint64_t *)0x1FFFC000) -#define OPTION_BYTES_2 ((uint64_t *)0x1FFFC008) +#define FLASH_OPTION_BYTES_1 (*(const uint64_t *)0x1FFFC000) +#define FLASH_OPTION_BYTES_2 (*(const uint64_t *)0x1FFFC008) void memory_protect(void) { #if MEMORY_PROTECT // Reference STM32F205 Flash programming manual revision 5 http://www.st.com/resource/en/programming_manual/cd00233952.pdf // Section 2.6 Option bytes - // set RDP level 2 WRP for sectors 0 and 1 flash option control register matches - if ((((*OPTION_BYTES_1) & 0xFFEC) == 0xCCEC) && (((*OPTION_BYTES_2) & 0xFFF) == 0xFFC) && (FLASH_OPTCR == 0x0FFCCCED)) { + // set RDP level 2 WRP for sectors 0 and 1 flash option control register matches + if (((FLASH_OPTION_BYTES_1 & 0xFFEC) == 0xCCEC) && ((FLASH_OPTION_BYTES_2 & 0xFFF) == 0xFFC) && ((FLASH_OPTCR & 0x0FFFFFEC) == 0x0FFCCCED)) { return; // already set up correctly - bail out } flash_unlock_option_bytes();