Create flash register map

This commit is contained in:
Steins7 2023-03-24 19:05:43 +01:00
parent dd6d5fbdd1
commit 7f7cb077dc
2 changed files with 98 additions and 0 deletions

97
drivers/flash_regs.h Normal file
View File

@ -0,0 +1,97 @@
/** @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 __attribute__((packed)) {
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 __attribute__((packed)) {
uint32_t reserved1; //TODO
};
uint32_t word;
};
union FLASH_OPTKEYR {
struct __attribute__((packed)) {
uint32_t reserved1; //TODO
};
uint32_t word;
};
union FLASH_SR {
struct __attribute__((packed)) {
uint32_t reserved1; //TODO
};
uint32_t word;
};
union FLASH_CR {
struct __attribute__((packed)) {
uint32_t reserved1; //TODO
};
uint32_t word;
};
union FLASH_AR {
struct __attribute__((packed)) {
uint32_t reserved1; //TODO
};
uint32_t word;
};
union FLASH_OBR {
struct __attribute__((packed)) {
uint32_t reserved1; //TODO
};
uint32_t word;
};
union FLASH_WRPR {
struct __attribute__((packed)) {
uint32_t reserved1; //TODO
};
uint32_t word;
};
struct __attribute__((packed)) 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_

View File

@ -270,6 +270,7 @@ struct __attribute__((packed)) RCC {
union RCC_CSR CSR;
};
//--functions-------------------------------------------------------------------
#endif //_RCC_REGS_H_