32#define MCCI_STM32H7_REG_FLASH_SR_ERRORS \
34 MCCI_STM32H7_REG_FLASH_SR_DBECCERR | \
35 MCCI_STM32H7_REG_FLASH_SR_SNECCERR | \
36 MCCI_STM32H7_REG_FLASH_SR_RDSERR | \
37 MCCI_STM32H7_REG_FLASH_SR_RDPERR | \
38 MCCI_STM32H7_REG_FLASH_SR_INCERR | \
39 MCCI_STM32H7_REG_FLASH_SR_STRBERR | \
40 MCCI_STM32H7_REG_FLASH_SR_PGSERR | \
41 MCCI_STM32H7_REG_FLASH_SR_WRPERR)
79 volatile const void * pBase,
105 for (status =
true; nSectors > 0; --nSectors)
255 volatile const void * pDest,
263 uint32_t destEndAddr;
264 volatile uint32_t * pFlashAddr;
265 const uint32_t * pSrcData;
267 srcAddr = (uint32_t) pSrc;
268 if ((srcAddr & 3) != 0)
274 destAddr = (uint32_t) pDest;
280 pFlashAddr = (
volatile uint32_t *) destAddr;
281 pSrcData = (
const uint32_t *) srcAddr;
308 McciArm_InstructionSynchBarrier();
309 McciArm_DataSynchBarrier();
313 *pFlashAddr++ = *pSrcData++;
316 McciArm_InstructionSynchBarrier();
317 McciArm_DataSynchBarrier();
static uint32_t McciArm_putRegOr(uint32_t reg, uint32_t orVal)
or 32-bit values to a cm0plus register
static uint32_t McciArm_getReg(uint32_t reg)
read a 32-bit value from a cm0plus register
static uint32_t McciArm_putReg(uint32_t reg, uint32_t val)
write a 32-bit value to a cm0plus register
static uint32_t McciArm_putRegClear(uint32_t reg, uint32_t clearVal)
clear out 32-bit values to a cm0plus register
McciBootloaderPlatform_SystemFlashWriteFn_t McciBootloader_Stm32h7_systemFlashWrite
McciBootloaderPlatform_SystemFlashEraseFn_t McciBootloader_Stm32h7_systemFlashErase
#define MCCI_STM32H7_REG_FLASH_KEYR_UNLOCK1
unlock word 1 for FLASH_CR1
#define MCCI_STM32H7_FLASH_IS_BANK2(f)
#define MCCI_STM32H7_FLASH_PROGRAM_FLASH_SIZE
size in bytes of a FLASH program
#define MCCI_STM32H7_REG_FLASH_CR_LOCK
Lock the FLASH_CR register.
#define MCCI_STM32H7_REG_FLASH_CR2
Flash control register for bank 2.
#define MCCI_STM32H7_REG_FLASH_KEYR1
Flash key register for bank 1.
#define MCCI_STM32H7_REG_FLASH_CR_SSN
Sector erase selection number.
#define MCCI_STM32H7_REG_FLASH_CR_SER
Sector erase request.
#define MCCI_STM32H7_REG_FLASH_CR1
Flash control register for bank 1.
#define MCCI_STM32H7_REG_FLASH_SR_EOP
End-of-program flag.
#define MCCI_STM32H7_FLASH_IS_VALID(f)
#define MCCI_STM32H7_REG_FLASH_KEYR_UNLOCK2
unlock word 2 for FLASH_CR1
#define MCCI_STM32H7_REG_FLASH_CR_START
Erase start control.
#define MCCI_STM32H7_REG_FLASH_SR_BSY
Busy flag.
#define MCCI_STM32H7_REG_FLASH_CR_PG
Internal buffer control.
#define MCCI_STM32H7_REG_FLASH_SR_QW
wait queue flag
#define MCCI_STM32H7_REG_FLASH_CR_SSN_N(n)
Sector erase selection number.
#define MCCI_STM32H7_REG_FLASH_SR1
Flash status register for bank 1.
#define MCCI_STM32H7_FLASH_SECTOR_SIZE
size in bytes of a sector
#define MCCI_STM32H7_REG_FLASH_SR2
Flash status register for bank 2.
#define MCCI_STM32H7_REG_FLASH_KEYR2
Flash key register for bank 2.
#define MCCI_STM32H7_FLASH_GET_SECTOR(f)
bool McciBootloader_Stm32h7_waitForDone(uint32_t flash_addr)
void McciBootloader_Stm32h7_Unlock(uint32_t flash_addr)
#define MCCI_STM32H7_REG_FLASH_SR_ERRORS
bool McciBootloader_Stm32h7_EraseSector(uint32_t flash_addr)
void McciBootloader_Stm32h7_Lock(uint32_t flash_addr)