请教各位,使用的芯片是stm32g474cbt6,按照手册说法,single bank是单一flash区域,最小擦除是4k,dual bank是支持双flash区域,一边操作不影响另外一块,最小擦除是2k. 手册判定依据:读取flash option register,其中BFB2位是0,表示是单bank模式。 而我这边不管是打印出寄存器状态值,还是用cube工具读出来,都是BFB2为0,DBANK为1。bit22 DBANK 表示单bank和双bank的数据大小。同时我自己实测下来,默认状态的最小擦除是2k,但用hal的api,双bank操作不行,实际应该是单bank,但是single bank的擦除又是2k,和手册的最小4k不一致。。 下图是手册的bank模式的判定寄存器说明和cube工具的读出。 下图是手册说明,bank模式不同,分区和最小擦除单位不同。g474cbt6是3类flash 下图说DBANK是1,表示双bank。 我这边,上电默认 BFB2 是0, DBANK是1,我试了很多次结果一致,同时擦除最小单位2k,擦除用single bank模式可以覆盖全部。我实在有点搞不懂,感觉混在一起了,不知道是不是我理解不对,望各位大佬指点一下
|
|