基于stm32实现片内flash读取数据及音乐播放(不完整)
FLASN
1、空间划分
块(bank) > 扇区(sector) > 页(page)
一般一个扇区(sector)多个页(page) , 一个块 (bank)又有多个扇区 (sector)。
2、举例
以W25Q128为例:
128Mbit 的容量。每页256字节,一共65536个字节,合计655362568=134,217,728bit ,等于134,217,728/1024/1024=128Mbit.每次编程数据为256字节。擦除可以按16页(即一个扇区擦除,4K)、按128页擦除(32KB块擦除)、按256页擦除(64KB块擦除)或者整片擦除。
这个芯片总结来说:
每页256个字节,一共65536页。
每个扇区有16页,也即4KB大小。
块比较特殊,可以是32KB,也可以是64KB,这取决于擦除方式,所以这里分两种块擦除操作。
3、注意事项
(1)flash在写入之前必须先擦除;
(2)擦除的最小单位是扇区,芯片的flash空间不一样,可能扇区的大小也不一样;
(3)对于频繁擦写的应用,需要考虑擦写均衡以提高flash的寿命;