STM32F407ZET6的扇区的扇区分配如下:
扇区 00x0800 0000 - 0x0800 3FFF16 KB扇区 10x0800 4000 - 0x0800 7FFF16 KB扇区 20x0800 8000 - 0x0800 BFFF16 KB扇区 30x0800 C000 - 0x0800 FFFF16 KB扇区 40x0801 0000 - 0x0801 FFFF64 KB扇区 50x0802 0000 - 0x0803 FFFF128 KB扇区 60x0804 0000 - 0x0805 FFFF128 KB扇区 70x0806 0000 - 0x0807 FFFF128 KB
3个程序:bootloader, app1, app2
我的程序app的大小在150k左右, 但是内部flash的擦除只能按扇区来擦除, 有什么办法对flash进行分区存储我的app程序,及存储一些标记位。
看这个表格,又没办法 64k+128k 来分, 有什么解决办法?
我有一个思路就是
app1: 0x0801 0000 - 0x0803 FFFF 为app1
app1: 0x0804 0000 - 0x0806 FFFF 为app2
擦除扇区前,先读出扇区的内容,擦除完再写入,这样保证不影响app的内容?
不知道这种思路地不对,但是读出64k的内容, RAM总共也才64K,好像也不行。 |