1. flash分为NOR和NAND两种,STM32内部的flash为NOR,U盘/SD卡等常为NAND
NOR的flash支持XIP操作,主要可以支持以字节为单位读写,方便存放程序
NAND的flash读写以扇区为单位,但NAND便宜,存储空间一般较大
2. flash要写入前需要先擦除,擦除单位为扇区
3. flash读写一般步骤
擦除扇区或页(发送擦除指令+擦除扇区或页基地址)
发送写指令+写入基地址(读数据修改指令即可)
flash的指令需要查阅芯片指令集
4. flash写入和擦除很耗时间,所以擦除和写入操作后一定要检查flash的标志位busy位是否为忙
,检测是否操作完成,注意busy是否为忙是flash的寄存器,而不是stm32的
4. eeporm可以按字节为单位读写,但速度一般较慢,成本高,空间小
5. eeporm和flash都能掉电保存