diff options
Diffstat (limited to 'libmaple/flash.c')
| -rw-r--r-- | libmaple/flash.c | 29 | 
1 files changed, 29 insertions, 0 deletions
diff --git a/libmaple/flash.c b/libmaple/flash.c new file mode 100644 index 0000000..a3ee26b --- /dev/null +++ b/libmaple/flash.c @@ -0,0 +1,29 @@ +#include "libmaple.h" +#include "flash.h" + +#define ACR_PRFTBE                ((uint32)0xFFFFFFEF) +#define ACR_PRFTBE_ENABLE ((uint32)0x00000010)  /* FLASH Prefetch Buffer Enable */ +#define ACR_PRFTBE_DISABLE ((uint32)0x00000000)  /* FLASH Prefetch Buffer Disable */ + +#define ACR_LATENCY               ((uint32)0x00000038) +#define ACR_LATENCY_0                ((uint32)0x00000000)  /* FLASH Zero Latency cycle */ +#define ACR_LATENCY_1                ((uint32)0x00000001)  /* FLASH One Latency cycle */ +#define ACR_LATENCY_2                ((uint32)0x00000002)  /* FLASH Two Latency cycles */ + +void flash_enable_prefetch(void) { +   uint32 acr = __read(FLASH_ACR); + +   acr &= ACR_PRFTBE; +   acr |= ACR_PRFTBE_ENABLE; + +   __write(FLASH_ACR, acr); +} + +void flash_set_latency(void) { +   uint32 acr = __read(FLASH_ACR); + +   acr &= ACR_LATENCY; +   acr |= ACR_LATENCY_2; + +   __write(FLASH_ACR, acr); +}  | 
