升级 FATFS 笔记

news/2024/10/18 0:19:25/

最近有朋友希望 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


http://www.ppmy.cn/news/1341734.html

相关文章

Linux软件编程以及IO输入输出——linux——day1

Linux软件编程以及其IO输入输出 Linux软件编程 linux是操作系统的内核 主要有以下几个功能: ①管理CPU ②管理内存 ③管理硬件设备 ④管理文件系统 ⑤任务调度 shell指令 shell命令主要保护Linux内核(用户和Linux内核不直接操作,通过操作Shell,Shell和内核交互…

vue3 markdown编辑器推荐(maven-editor vditor tiptap )

最近项目需要用到markdown编辑器,使用了三种 maven-editor (http://www.mavoneditor.com/?spma2c6h.12873639.article-detail.9.aaad62affAKmTV)vditor (https://b3log.org/vditor/demo/index.html?utm_sourceld246.com)tiptap (https://github.com/ueberdosis/t…

网络安全之SSL证书加密

简介 SSL证书是一种数字证书,遵守SSL协议,由受信任的数字证书颁发机构(CA)验证服务器身份后颁发。它具有服务器身份验证和数据传输加密的功能,能够确保数据在传输过程中的安全性和完整性。 具体来说,SSL证…

QT 应用中集成 Sentry

QT 应用中集成 Sentry QT应用中集成 SentrySentry SDK for C/C注册 Sentry 账号QT 应用中集成 Sentry触发 Crash 上报 QT应用中集成 Sentry Sentry 是一个开源的错误监控和日志记录平台,旨在帮助开发团队实时捕获、跟踪和解决软件应用程序中的错误和异常。它提供了…

结构体的学习

结构体与共用体,枚举 1.数据类型复习: 2结构体. eg;统计全校同学信息 需要记录的点--- 姓名,班级,性别,成绩,年龄 统计名字:char s[ ] [ 100 ] { "Tmo" } …

02 使用jdk运行第一个java程序:HelloWorld

使用jdk运行第一个java程序 1 HelloWorld小案例1.1 编写流程1.2 错误示例 首先在CMD命令行里面,使用javac xxxx.java, 进行编译,其中会有报错; 然后生成xxxx.class 文件,然后使用java xxxx.class 进行运行。 1 HelloWo…

gRPC使用详解

起源特点主要优缺点应用场景组成部分使用方法SpringBoot集成gRPCVert.x集成gRPCNacos集成gRPC监控gRPC调用过程Java使用示例 起源 gRPC的起源可以追溯到2015年,当时谷歌发布了一款开源RPC框架,名为gRPC。gRPC的设计初衷是为了提供一种标准化、可通用和跨…

记录解决报错--vue前后端分离,接口401(Unauthorized)

1.场景 前端访问不了后端接口。报错401。 2.解决步骤 ①在页面console.log(111)查看走到代码的位置没有。(走到了,没问题) ②查看vue.config.js配置。这段配置就是vue访问api的url。(没问题) devServer: {port: 80…