下载地址

http://elm-chan.org/fsw/ff/00index_e.html

https://download.csdn.net/download/shaynerain/20678221

解压后

文档

在doc中有相关介绍文档,提示我们需要不同这六个函数

在src中有readme文件

里面介绍了每个文件的内容

系统

非常重要的问题,在系统中使用需要考虑线程安全问题,在syscall.c中给出了相关的解决方式

使用系统

必须添加syscall.c

不使用系统

只需要添加ff.c和diskio.c

修改文件

diskio.c

diskio中的文件进行补全

disk_status,可直接返回0

disk_initialize,写入初始化,如果已经初始化过设备可以直接返回0

disk_read,读函数,需要注意,读指的是读一个block,即512个字节,在设备中需要区分

disk_write,写函数,同上

disk_ioct1,命令相关,该函数需要注意,在配置文件中不一样的配置需要不一样的内容,具体可查看http://elm-chan.org/fsw/ff/doc/dioctl.html

get_fattime,该函数可直接返回0,可添加该函数,如果_FS_NORTC=1不必提供

syscall.c

这里使用了FreeRTOS系统,需要进行修改

在ffconf.h中,需要使能_FS_REENTRANT

#define _FS_REENTRANT    0
#define _FS_TIMEOUT     1000
#define _SYNC_t         HANDLE
/* The _FS_REENTRANT option switches the re-entrancy (thread safe) of the FatFs
/  module itself. Note that regardless of this option, file access to different
/  volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
/  and f_fdisk() function, are always not re-entrant. Only file/directory access
/  to the same volume is under control of this feature.
/
/   0: Disable re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/   1: Enable re-entrancy. Also user provided synchronization handlers,
/      ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/      function, must be added to the project. Samples are available in
/      option/syscall.c.
/
/  The _FS_TIMEOUT defines timeout period in unit of time tick.
/  The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/  SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/  included somewhere in the scope of ff.c. */

按照提示修改

#define _SYNC_t SemaphoreHandle_t

并且在添加头文件

#include "FreeRTOS.h"

#include "queue.h"

#include "semphr.h"

接下来修改函数部分

按照提示取消FreeTROS屏蔽

GD32移植FATFS文件系统相关推荐

  1. STM32CubeMX系列09——SDIO(SD卡读写、SD卡移植FATFS文件系统)

    文章目录 1. 准备工作 1.1. 简单扫盲 1.1.1. SD卡 1.1.2. TF卡 1.1.3. SDIO接口 1.2. 所用硬件及原理图 2. 创建工程 2.1. 选择主控 2.2. 系统配置 ...

  2. stm32f103c8t6移植Fatfs文件系统出现的一些问题

    一.环境 keil5,使用库函数 二.移植对象 stm32f103zet6 >> stm32f103c8t6 三.连接方式 硬件SPI1(PA5,6,7) 四.主函数代码 #include ...

  3. 使用vscode + gcc进行 STM32 单片机开发(三)DMA读写SD卡,移植FATFS文件系统

    背景 在本系列的前两篇文章( 使用vscode + gcc进行 STM32 单片机开发(一)编译及调试 使用vscode + gcc进行 STM32 单片机开发(二)gcc环境 移植rtthread) ...

  4. 【STM32Cube_20】在SD卡上移植FATFS文件系统

    本篇详细的记录了如何使用STM32CubeMX移植FATFS文件系统到SD卡上. 1. 准备工作 硬件准备 开发板 首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi): Mi ...

  5. STM32移植FatFS文件系统最新版R0.14b

    STM32移植FatFS文件系统 目录 一.前言 二.硬件及软件准备 三.移植FatFS文件到工程文件夹下 四.将移植文件添加到工程中 五.修改"diskio.c"文件 六.配置& ...

  6. 【FatFs】基于STM32 SD卡移植FatFs文件系统

    相关文章 <[SDIO]SDIO.SD卡.FatFs文件系统相关文章索引> 1.前言 FatFs是一个通用的FAT/exFAT文件系统模块,用于小型嵌入式系统.它完全是由 ANSI C 语 ...

  7. 贴片SD卡移植FATFS文件系统

    一.前言 手头有一块深圳雷龙提供的贴片 CS 创世 SD NAND Flash,挂载个文件系统把玩一下.首先介绍一下使用的贴片 SD 卡,以前使用的都是拔插式的 SD 卡,下面这个样子: 深圳雷龙提供 ...

  8. STM32+雷龙SD NAND(贴片SD卡)完成FATFS文件系统移植与测试

    一.前言 在STM32项目开发中,经常会用到存储芯片存储数据. 比如:关机时保存机器运行过程中的状态数据,上电再从存储芯片里读取数据恢复:在存储芯片里也会存放很多资源文件.比如,开机音乐,界面上的菜单 ...

  9. stm32f769 寄存器配置SD卡---移植fatfs

    昨天开始在上周实现的SD卡读写基础上移植fatfs文件系统,开始不是很顺利,之前没有搞过,完全按照f767的例程移植的,但是在加载SD卡时一直是失败的,很郁闷,折腾了一天,结果还不理想,睡了个好觉,思 ...

  10. STM32CubeMX学习笔记(27)——FatFs文件系统使用(操作SD卡)

    一.FatFs简介 FatFs 是面向小型嵌入式系统的一种通用的 FAT 文件系统.它完全是由 ANSI C 语言编写并且完全独立于底层的 I/O 介质.因此它可以很容易地不加修改地移植到其他的处理器 ...

最新文章

  1. mysql shharding_mysql 技术内幕 的示例数据库
  2. 日志服务Flink Connector《支持Exactly Once》
  3. 自定义Chrome浏览器
  4. SQL学习教程:基础教程高级教程
  5. BC28、BC95通过LWM2M连接电信AEP(ctwing)
  6. mysql服务实例配置_MySQL多实例配置(一)
  7. Where to Store your JWTs – Cookies vs HTML5 Web Storage--转
  8. POJ 1723 Soldiers (中位数)
  9. mysql创建表时出现1071_mysql 出现1071错误怎么办
  10. java反射快速入门(二)
  11. easyui获取下拉框选中的文本值_Word中文本显示不全的常见3种情况及解决方法
  12. 前端的魔爪已经伸到后端了,颤抖吧后端!
  13. dimp是什么意思_单目标追踪论文阅读系列(八)——《DIMP(ICCV2019)》
  14. 手写java通用curd_还在手写CRUD代码?这款开源框架助你解放双手!
  15. 软件测试基本流程与方案(以电商大促为例)
  16. 手把手教你用VMware安装Centos7.9镜像(史上最详细)
  17. 俩年的这五十篇技术博客,送给不忘初心的你。
  18. loadlibrary failed with error 126:找不到指定模块 解决方法
  19. 自动化行业软件工程师工作第一年总结
  20. Spring 5.X+CXF 3.X 开发SOAP Web Service服务端实例

热门文章

  1. 【YY手机】用AVR单片机制作手机系列教程-制作篇
  2. CDMA关键技术(RAKE、软切换、功率控制
  3. PCAN-Explorer5安装教程
  4. vue中打印表格功能(重点是表格制作)
  5. 谷歌离线地图WMS/WMTS服务
  6. 2376. 统计特殊整数--(每日一难phase2--day4)
  7. kali linux安装谷歌拼音输入法(亲测可用)
  8. 搭建 Ruby 运行环境【Rails后端开发训练营】
  9. 商业价值:中国互联网的产品经理时代
  10. structs2本地(国际)化