/** @file flash_regs.h * Module defining flash memory interface registers. * * Mainly made to be used by the rcc module. It is recommanded to go through * the functions provided by that module instead of directly using the registers * defined here. */ #ifndef _FLASH_REGS_H_ #define _FLASH_REGS_H_ //--includes-------------------------------------------------------------------- #include "stdint.h" //--type definitions------------------------------------------------------------ #define FLASH_BASE_ADDRESS 0x40022000 union FLASH_ACR { struct { uint32_t LATENCY:3; uint32_t HLFCYA:1; uint32_t PRFTBE:1; uint32_t PRFTBS:1; uint32_t reserved1:26; }; uint32_t word; }; union FLASH_KEYR { struct { uint32_t reserved1; //TODO }; uint32_t word; }; union FLASH_OPTKEYR { struct { uint32_t reserved1; //TODO }; uint32_t word; }; union FLASH_SR { struct { uint32_t reserved1; //TODO }; uint32_t word; }; union FLASH_CR { struct { uint32_t reserved1; //TODO }; uint32_t word; }; union FLASH_AR { struct { uint32_t reserved1; //TODO }; uint32_t word; }; union FLASH_OBR { struct { uint32_t reserved1; //TODO }; uint32_t word; }; union FLASH_WRPR { struct { uint32_t reserved1; //TODO }; uint32_t word; }; struct FLASH { union FLASH_ACR ACR; union FLASH_KEYR KEYR; union FLASH_OPTKEYR OPTKEYR; union FLASH_SR SR; union FLASH_CR CR; union FLASH_AR AR; uint32_t reserved1; union FLASH_OBR OBR; union FLASH_WRPR WRPR; }; //--functions------------------------------------------------------------------- #endif //_FLASH_REGS_H_