STM32
直播中

小峰

12年用户 882经验值
私信 关注
[问答]

怎样去移植基于STM32F407的FATFS文件系统呢

怎样去移植基于STM32F407的FATFS文件系统呢?有哪些流程?

回帖(1)

赵秀英

2021-10-18 15:05:20
  STM32F407单片机内部flash空间比较小,所以内部flash的数据组织形式为FAT12格式;
  移植过程需要用到的知识为 FATFS文件系统源码包,FAT12文件格式。这两方面具体知识,自行百度,这里不再介绍。
  切入正题,进行具体的文件系统移植。
  一、修改ffconf.h文件
  
  二、修改diskio.c文件
  (1)、disk_status函数,返回磁盘状态,直接返回0;
  
  (2)、disk_initialize函数,初始化磁盘,直接返回0
  
  (3)、disk_read函数,读磁盘扇区数据
  
  (4)、disk_write函数,将数据写入磁盘扇区
  
  (5)、disk_ioctl函数,控制磁盘指定特性函数
  
  三、将Flash格式化成FAT12格式
  该部分需要注意的是,FAT12格式化的数据内容必须正确,否则会导致Flash磁盘挂载不上。(这部分圈起来划重点啦,网上找不到第二例这么详细的,哈哈。。。)
  (1)按照FAT12文件格式定义一个FAT12数据结构体;
  
  (2)将结构体数据变量进行初始化,并且写入0x08060000地址,也就是stm32F407 Flash中第7个扇区,文件系统大小为100KB;
  
  四、文件系统操作测试
  
  
  测试结果:
  (1)、引导扇区(0x08060000)
  
  (2)、FAT1表(0x08060200)
  
  (3)、FAT2表(0x08061400)
  
  (4)、根目录(0x08062600)
  
  
  (5)、数据区(0x08064200)
  
  
  至此,文件系统移植完毕。(为了省时间直接从word文档拷贝过来的,没排版好,各位见谅!)
举报

更多回帖

发帖
×
20
完善资料,
赚取积分