stm32h743存储简况
如下:
2MB Flash, 分2个bank(存储区), 可在两个banks并行执行 读/编程/擦除 操作1 Flash_Word = 8 Words = 32 Bytes = 256 bits, 其实1 Flash_Word 还有额外的10bits ECC. 因为有写buffer, 可以按8/16/32/64bit写, 但是为了精确地锁定一个Flash_Word, 写wrap burst不能跨越32字节对齐的地址边界, 所以牢记256bit进行Flash编程1 Bank 划分成 8 Sectors(扇区), 也就是(128KB/Sector, 或者4K Flash_Word/Sector)Bank1默认映射到0x08000000~0x0x080FFFFF, Bank2默认映射到 0x08100000~0x081FFFFF, 可以 改动 FLASH_OPTCR 寄存器的SWAP_BANK 位实现BANK的映射交换, 比较骚操作(不再划分Boot和APP程序, 1MB可以全给应用程序, 直接Bank1运行写新程序到Bank2, 然后Switch到Bank2拷贝BANK2到BANK1, 然后还可以Switch到BANK1运行, 参考AN4767 On-the-fly firmware update for dual bank STM32 microcontrollers ), 本篇不按这么骚操作, 还是传统的划分了Boot和APP简记: 擦除按扇区(128KB)对齐, 写按Flash_Word(32B)对齐, 读可以按字节(B)对齐
|