GD32移植FATFS文件系统
下载地址
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文件系统相关推荐
- 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. 系统配置 ...
- stm32f103c8t6移植Fatfs文件系统出现的一些问题
一.环境 keil5,使用库函数 二.移植对象 stm32f103zet6 >> stm32f103c8t6 三.连接方式 硬件SPI1(PA5,6,7) 四.主函数代码 #include ...
- 使用vscode + gcc进行 STM32 单片机开发(三)DMA读写SD卡,移植FATFS文件系统
背景 在本系列的前两篇文章( 使用vscode + gcc进行 STM32 单片机开发(一)编译及调试 使用vscode + gcc进行 STM32 单片机开发(二)gcc环境 移植rtthread) ...
- 【STM32Cube_20】在SD卡上移植FATFS文件系统
本篇详细的记录了如何使用STM32CubeMX移植FATFS文件系统到SD卡上. 1. 准备工作 硬件准备 开发板 首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi): Mi ...
- STM32移植FatFS文件系统最新版R0.14b
STM32移植FatFS文件系统 目录 一.前言 二.硬件及软件准备 三.移植FatFS文件到工程文件夹下 四.将移植文件添加到工程中 五.修改"diskio.c"文件 六.配置& ...
- 【FatFs】基于STM32 SD卡移植FatFs文件系统
相关文章 <[SDIO]SDIO.SD卡.FatFs文件系统相关文章索引> 1.前言 FatFs是一个通用的FAT/exFAT文件系统模块,用于小型嵌入式系统.它完全是由 ANSI C 语 ...
- 贴片SD卡移植FATFS文件系统
一.前言 手头有一块深圳雷龙提供的贴片 CS 创世 SD NAND Flash,挂载个文件系统把玩一下.首先介绍一下使用的贴片 SD 卡,以前使用的都是拔插式的 SD 卡,下面这个样子: 深圳雷龙提供 ...
- STM32+雷龙SD NAND(贴片SD卡)完成FATFS文件系统移植与测试
一.前言 在STM32项目开发中,经常会用到存储芯片存储数据. 比如:关机时保存机器运行过程中的状态数据,上电再从存储芯片里读取数据恢复:在存储芯片里也会存放很多资源文件.比如,开机音乐,界面上的菜单 ...
- stm32f769 寄存器配置SD卡---移植fatfs
昨天开始在上周实现的SD卡读写基础上移植fatfs文件系统,开始不是很顺利,之前没有搞过,完全按照f767的例程移植的,但是在加载SD卡时一直是失败的,很郁闷,折腾了一天,结果还不理想,睡了个好觉,思 ...
- STM32CubeMX学习笔记(27)——FatFs文件系统使用(操作SD卡)
一.FatFs简介 FatFs 是面向小型嵌入式系统的一种通用的 FAT 文件系统.它完全是由 ANSI C 语言编写并且完全独立于底层的 I/O 介质.因此它可以很容易地不加修改地移植到其他的处理器 ...
最新文章
- mysql shharding_mysql 技术内幕 的示例数据库
- 日志服务Flink Connector《支持Exactly Once》
- 自定义Chrome浏览器
- SQL学习教程:基础教程高级教程
- BC28、BC95通过LWM2M连接电信AEP(ctwing)
- mysql服务实例配置_MySQL多实例配置(一)
- Where to Store your JWTs – Cookies vs HTML5 Web Storage--转
- POJ 1723 Soldiers (中位数)
- mysql创建表时出现1071_mysql 出现1071错误怎么办
- java反射快速入门(二)
- easyui获取下拉框选中的文本值_Word中文本显示不全的常见3种情况及解决方法
- 前端的魔爪已经伸到后端了,颤抖吧后端!
- dimp是什么意思_单目标追踪论文阅读系列(八)——《DIMP(ICCV2019)》
- 手写java通用curd_还在手写CRUD代码?这款开源框架助你解放双手!
- 软件测试基本流程与方案(以电商大促为例)
- 手把手教你用VMware安装Centos7.9镜像(史上最详细)
- 俩年的这五十篇技术博客,送给不忘初心的你。
- loadlibrary failed with error 126:找不到指定模块 解决方法
- 自动化行业软件工程师工作第一年总结
- Spring 5.X+CXF 3.X 开发SOAP Web Service服务端实例