libopencm3
A free/libre/open-source firmware library for various ARM Cortex-M3 microcontrollers.
flash_common_f24.h File Reference
Include dependency graph for flash_common_f24.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define FLASH_ACR   MMIO32(FLASH_MEM_INTERFACE_BASE + 0x00)
 Flash Access Control register. More...
 
#define FLASH_KEYR   MMIO32(FLASH_MEM_INTERFACE_BASE + 0x04)
 Flash Key register. More...
 
#define FLASH_OPTKEYR   MMIO32(FLASH_MEM_INTERFACE_BASE + 0x08)
 Flash Option bytes key register. More...
 
#define FLASH_SR   MMIO32(FLASH_MEM_INTERFACE_BASE + 0x0C)
 Flash Status register. More...
 
#define FLASH_CR   MMIO32(FLASH_MEM_INTERFACE_BASE + 0x10)
 Flash Control register. More...
 
#define FLASH_OPTCR   MMIO32(FLASH_MEM_INTERFACE_BASE + 0x14)
 Flash Option Control register. More...
 
#define FLASH_OPTCR1   MMIO32(FLASH_MEM_INTERFACE_BASE + 0x18)
 Flash Option Control register 1 (bank 2) More...
 
#define FLASH_ACR_LATENCY(w)   ((w) & FLASH_ACR_LATENCY_MASK)
 
#define FLASH_ACR_LATENCY_0WS   0x00
 
#define FLASH_ACR_LATENCY_1WS   0x01
 
#define FLASH_ACR_LATENCY_2WS   0x02
 
#define FLASH_ACR_LATENCY_3WS   0x03
 
#define FLASH_ACR_LATENCY_4WS   0x04
 
#define FLASH_ACR_LATENCY_5WS   0x05
 
#define FLASH_ACR_LATENCY_6WS   0x06
 
#define FLASH_ACR_LATENCY_7WS   0x07
 
#define FLASH_ACR_LATENCY_SHIFT   0
 
#define FLASH_ACR_LATENCY_MASK   0x0f
 
#define FLASH_ACR_PRFTEN   (1 << 8)
 
#define FLASH_SR_BSY   (1 << 16)
 
#define FLASH_SR_PGPERR   (1 << 6)
 
#define FLASH_SR_PGAERR   (1 << 5)
 
#define FLASH_SR_WRPERR   (1 << 4)
 
#define FLASH_SR_OPERR   (1 << 1)
 
#define FLASH_SR_EOP   (1 << 0)
 
#define FLASH_CR_LOCK   (1 << 31)
 
#define FLASH_CR_ERRIE   (1 << 25)
 
#define FLASH_CR_EOPIE   (1 << 24)
 
#define FLASH_CR_STRT   (1 << 16)
 
#define FLASH_CR_MER   (1 << 2)
 
#define FLASH_CR_SER   (1 << 1)
 
#define FLASH_CR_PG   (1 << 0)
 
#define FLASH_CR_SNB_SHIFT   3
 
#define FLASH_CR_SNB_MASK   0x1f
 
#define FLASH_CR_PROGRAM_MASK   0x3
 
#define FLASH_CR_PROGRAM_SHIFT   8
 
#define FLASH_CR_PROGRAM_X8   0
 
#define FLASH_CR_PROGRAM_X16   1
 
#define FLASH_CR_PROGRAM_X32   2
 
#define FLASH_CR_PROGRAM_X64   3
 
#define FLASH_OPTCR_NRST_STDBY   (1 << 7)
 
#define FLASH_OPTCR_NRST_STOP   (1 << 6)
 
#define FLASH_OPTCR_OPTSTRT   (1 << 1)
 
#define FLASH_OPTCR_OPTLOCK   (1 << 0)
 
#define FLASH_OPTCR_BOR_LEVEL_3   (0x00 << 2)
 
#define FLASH_OPTCR_BOR_LEVEL_2   (0x01 << 2)
 
#define FLASH_OPTCR_BOR_LEVEL_1   (0x02 << 2)
 
#define FLASH_OPTCR_BOR_OFF   (0x03 << 2)
 
#define FLASH_KEYR_KEY1   ((uint32_t)0x45670123)
 
#define FLASH_KEYR_KEY2   ((uint32_t)0xcdef89ab)
 
#define FLASH_OPTKEYR_KEY1   ((uint32_t)0x08192a3b)
 
#define FLASH_OPTKEYR_KEY2   ((uint32_t)0x4c5d6e7f)
 

Functions

void flash_lock_option_bytes (void)
 Lock the Option Byte Access. More...
 
void flash_clear_pgperr_flag (void)
 Clear programming parallelism error flag. More...
 
void flash_clear_wrperr_flag (void)
 Clear the Write Protect Error Flag. More...
 
void flash_clear_pgaerr_flag (void)
 Clear the Programming Alignment Error Flag. More...
 
void flash_erase_all_sectors (uint32_t program_size)
 Erase All FLASH. More...
 
void flash_erase_sector (uint8_t sector, uint32_t program_size)
 Erase a Sector of FLASH. More...
 
void flash_program_double_word (uint32_t address, uint64_t data)
 Program a 64 bit Word to FLASH. More...
 
void flash_program_word (uint32_t address, uint32_t data)
 Program a 32 bit Word to FLASH. More...
 
void flash_program_half_word (uint32_t address, uint16_t data)
 Program a Half Word to FLASH. More...
 
void flash_program_byte (uint32_t address, uint8_t data)
 Program an 8 bit Byte to FLASH. More...
 
void flash_program (uint32_t address, const uint8_t *data, uint32_t len)
 Program a Data Block to FLASH. More...
 
void flash_program_option_bytes (uint32_t data)
 Program the Option Bytes. More...