stm32l476 FLASH特征
• Up to 1 Mbyte of Flash memory with dual bank architecture supporting read-while-write
capability (RWW).
• Memory organization: 2 banks (Bank 1 and Bank 2)
– main memory: 512 Kbyte per bank
– information block: 32 Kbyte per bank
• 72-bit wide data read (64 bits plus 8 ECC bits)
• 72-bit wide data write (64 bits plus 8 ECC bits)
• Page erase (2 Kbyte), bank erase and mass erase (both banks)
摘自 STM32 RM0351 Reference manual 文档
- stm32l476 dual bank 地址表
写入操作流程
- FLASH解锁
HAL_FLASH_Unlock(); - 擦除FLASH
HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *PageError); - 写入FLASH
HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data); - 锁定FLASH
HAL_FLASH_Lock();
读取操作
直接从目标地址读取, uint8_t* 按照1个字节读取,如果是uint32_t* 按照一个字读取
buff[i] = *(__IO uint8_t*)(dest_addr + i);
//直接从目标地址读取, uint8_t* 按照1个字节读取,如果是uint32_t* 按照一个字读取
具体实现
/*