Add embedded flash module for stm32. First refactor of emb flash using kblock.
[bertos.git] / bertos / cpu / cortex-m3 / io / stm32_flash.h
index 48896659a699cfe79a6cc1b9a123699574cce550..10c244afa824e6d28d4869b9a83fe93b80804529 100644 (file)
 #ifndef STM32_FLASH_H
 #define STM32_FLASH_H
 
+#include <cfg/compiler.h>
+
 #include <cpu/types.h>
 
+/** Return the embedded flash size in kB */
+#define F_SIZE                   ((*(reg32_t *) 0x1FFFF7E0) & 0xFFFF)
+
+
 /* Flash Access Control Register bits */
 #define ACR_LATENCY_MASK         ((uint32_t)0x00000038)
 #define ACR_HLFCYA_MASK          ((uint32_t)0xFFFFFFF7)
 #define FLASH_FLAG_WRPRTERR      ((uint32_t)0x00000010)  /* FLASH Write protected error flag */
 #define FLASH_FLAG_OPTERR        ((uint32_t)0x00000001)  /* FLASH Option Byte error flag */
 
+
+
+/**
+ * Embbeded flash configuration registers structure
+ */
+struct stm32_flash
+{
+  reg32_t ACR;
+  reg32_t KEYR;
+  reg32_t OPTKEYR;
+  reg32_t SR;
+  reg32_t CR;
+  reg32_t AR;
+  reg32_t RESERVED;
+  reg32_t OBR;
+  reg32_t WRPR;
+};
+
 #endif /* STM32_FLASH_H */