
串行Flash通用驱动库SFUD.zip
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
串行Flash通用驱动库SFUD是一款为STM32微控制器设计的开源软件库,支持多种SPI NOR Flash存储设备,简化了闪存芯片在嵌入式系统中的使用和操作。
SFUD(Serial Flash Universal Driver)是一款开源的串行 SPI Flash 通用驱动库。由于市场上存在众多不同品牌、规格各异的串行Flash芯片,它们之间在命令集及容量上有所差异,这给开发人员带来了不便。SFUD正是为了解决这一问题而设计出来的,它能够使我们的产品支持多种品牌的Flash,并且提高了软件中涉及 Flash 功能部分的可重用性和扩展性;同时也能帮助规避由于 Flash 缺货或停产所导致的产品风险。
主要特点包括:面向对象(可以同时操作多个 Flash 对象)、灵活裁剪、易于扩展,以及对 4 字节地址的支持。在资源占用方面,标准情况下需要 RAM 空间为0.2KB 和 ROM 空间5.5KB;而最小配置下则只需要RAM空间0.1KB和ROM空间3.6KB。
SFUD的设计思路基于JEDEC(固态技术协会)制定的串行 Flash 参数描述格式标准 SFDP。这一标准规定了每个Flash内部会存在一个参数表,其中包含有容量、写入粒度、擦除命令及地址模式等关键信息。目前市面上绝大多数新出厂的Flash产品都支持SFDP规范,因此在初始化时SFUD会首先尝试读取该表中的参数;如果发现某款 Flash 不支持 SFDP,则需要根据库提供的配置文件(/sfud/inc/sfud_flash_def.h)中已有的或新增加的 Flash 参数信息来完成相应的操作。
选择使用 SFUD 的原因包括:规避因Flash缺货、停产或者产品扩容带来的风险,提高软件平台对于不同硬件平台上的Flash种类支持能力,简化开发流程并降低难度;此外还可以用于制作Flash编程器/烧写工具等设备。
在具体的使用方法方面,SFUD目前提供了针对多个 Demo 平台的支持(例如 STM32F10X 裸机版和STM32F2XX RT-Thread 操作系统平台)。同时它也已测试并支持了多种 Flash 型号(如 Winbond 的 W25Q40BV 和W25Q80DV,Micron的 M25P32 等等),并且提供了一个详细的Flash参数信息表以供参考。
全部评论 (0)


