最近因项目需要,做一个数据采集的单片机平台。需要移植 FatFs 。现在把最后成果贴上来。
在 STM32 单片机上,成功移植 FatFs 0.12b,使用的 Nand Flash 芯片为 K9F2G08 。
特点: 系统配合 FatFs 实现了擦写均衡,坏块管理,硬件ECC,软件 ECC 纠错
文件组成:
FatFs 目录
+---- ffconf.h 对 FatFs 进行配置的文件
+---- ff.h
+---- ff.c 是 FatFs 的实现文件,擦写均衡 在 f_getfree 函数中已实现。
+---- ccsbcs.c 文件名支持英文
+---- cc936.c 文件名支技中文
+---- diskio.c 是 FatFs 与自定义驱动层的接口函数
+---- NandDisk.c 为自己实现的 NandFlash 匹配函数,坏块管理在这里实现。 BSP 目录
+---- fsmc_nand.h 对 K9F2G08 的各种参数定义
+---- fsmc_nand.c 实现硬件级别的读写驱动,STM32 的 硬件 ECC 在这里使用。还 实现了 ECC 自动纠错。
注:为了获得 64*2K 的擦除缓冲区,系统还使用了一块 SRAM 芯片,以支持 malloc 内存 分配函数。这个文件由你自己的系统提供。
引用:
FatFs 系统 http://elm-chan.org/fsw/ff/00index_e.html
ECC 算法详细说明 http://www.360doc.com/content/11/0523/17/496343_118837985.shtml
最后如果想要下载程序的朋友请点这里:源程序下载
时间: 2024-10-25 10:18:30