升级 FATFS 笔记

最近有朋友希望 AWTK demo 中的 FATFS 能升级到最新版本,在升级的过程中遇到一些小问题,这里做个记录。

1. 升级 FATFS

从官网下载最新代码。更新下面的文件到AWTK项目中:

  • ff.c
  • ff.h
  • ffsystem.c
  • ffunicode.c

下面的文件不需要更新:

  • diskio.c
  • diskio.h
  • ffconf.h

2. 问题处理

2.1 出现错误 FF_DIR 没有定义

处理方法:在 ffconf.h 中定义 FF_DIR

#define FF_DIR DIR

2.2 出现错误 DWORD 重定义

在 diskio.h 中,将

#include "integer.h"

改为

#include "ff.h"

2.3 出现ff_memalloc等函数重定义

在 ffsystem.c 中,删除相应的函数。

2.4 支持中文文件名

在 ffconf.h 中

#define FF_CODE_PAGE  936

2.5 支持多线程访问

在 ffconf.h 中

#define FF_FS_REENTRANT 1
#define OS_TYPE 3      /* 0:Win32, 1:uITRON4.0, 2:uC/OS-II, 3:FreeRTOS, 4:CMSIS-RTOS */

2.6 更新版本号

#define FFCONF_DEF 80286  /* Revision ID */

完整代码请参考awtk-modbus