首先我们都知道我们的代码是保存在FLASH里的,FLASH的数据掉电不会消失,所以我们也可以将FLASH当作eeprom来用,这里以H743为例,743有两个1M的bank,每个bank有8个128k的扇区,我们需要注意的是每个扇区写之前都是要先擦除的,这也是为什么750不能用FLASH当做eeprom来用,一般750会额外外挂一个外扩的FLASH芯片,比如w25q之类的,因为750只有一块扇区,首先我们看一下743的扇区:
/* FLASH 扇区的起始地址,分2个bank,每个bank 1MB */
/* BANK1 */
#define BANK1_FLASH_SECTOR_0 ((uint32_t)0x08000000) /* Bank1扇区0起始地址, 128 Kbytes */
#define BANK1_FLASH_SECTOR_1 ((uint32_t)0x08020000) /* Bank1扇区1起始地址, 128 Kbytes */
#define BANK1_FLASH_SECTOR_2 ((uint32_t)0x08040000) /* Bank1扇区2起始地址, 128 Kbytes */
#define BANK1_FLASH_SECTOR_3 ((uint32_t)0x08060000) /* Bank1扇区3起始地址, 128 Kbytes */
#define BANK1_FLASH_SECTOR_4 ((uint32_t)0x08080000) /* Bank1扇区4起始地址, 128 Kbytes */
#define BANK1_FLASH_SECTOR_5 ((uint32_t)0x080A0000) /* Bank1扇区5起始地址, 128 Kbytes */
#define BANK1_FLASH_SECTOR_6 ((uint32_t)0x080C0000) /* Bank1扇区6起