【FatFs】文件系统的移植

移植步骤

下载地址http://elm-chan.org/fsw/ff/00index_e.html

1.文件移植
在这里插入图片描述
将文件政策放置到USER下,魔术棒添加头文件路径和在keil中添加即可

2.注释或者删除官方的示例
在这里插入图片描述

3.定义get_fattime

DWORD get_fattime(void)
{

	return 0;

}

4.修改存储介质,替换掉示例的存储介质
在这里插入图片描述

disk_status:告知操作哪个存储介质
disk_initialize:初始化存储介质
disk_read
在这里插入图片描述

OUT方向是向上传输给ff.c

设备状态返回
在这里插入图片描述
没有初始化,不存在设备,设备写保护
5.把FLASH等设备的初始化函数写到disk_initialize之下,以便之后f_mount的调用对引脚进行初始化
在这里插入图片描述

6.为了确认初始化正常,要读取FLASH_ID确认初始化成功

可以直接调用disk_status返回状态

在这里插入图片描述
disk_status的返回类型
在这里插入图片描述
调用初始化函数之后要确保SPI_Flash能正常操作(防止存POWER_DOWN状态),可以调用SPI_Flash_WAKEUP在初始化函数之前;

7.读取状态
在这里插入图片描述
选定设备,向上层返回数据,选择开始扇区,扇区数

返回值
在这里插入图片描述

通过调用SPI_FLASH_BufferRead();读取状态
因为每个扇区地址相隔4096,所以可以写为
在这里插入图片描述

8.写入状态
同读取数据需要调用SPI_FLASH
在这里插入图片描述
指针类型不一致需要进行强制转换

9.对FLASH进行格式化
调用disk_ioctl

在这里插入图片描述
相关命令
在这里插入图片描述
在这里插入图片描述
CTRL_SYNC用于同步,即把内存数据保存到硬盘,对于flash来说直接写入,所以不需要同步

MIN_SS和MAX_SS是代指扇区大小,MAX_SS需要改为4096

GET_BLOCK_SIZE每次擦除最小单位
在这里插入图片描述
flash有128个block,每个block有16个扇区,共2048个扇区。返回类型要强制转换为DWORD和WORD

时间返回按情况写入
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值