首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

STM32-移植FATFS的NANDFLASH驱动

STM32-移植FATFS的NANDFLASH驱动

一,建立工程FATFS源码
1,在http://elm-chan.org/fsw/ff/00index_e.html上下载ff007c.zip,并把ff007c.zip里面的
src文件夹复制到D:\works\EK-STM3210E-UCOSII下,并改名为Fatfs;
2,在IDE工程中右击选择“Add Group”建立“FATFS”文件组,并在“FATFS”上右击选择“Add Files”添加
D:\works\EK-STM3210E-UCOSII\Fatfs下的C文件;
3,把D:\works\EK-STM3210E-UCOSII\Fatfs文件夹目录添加到项目头文件搜索路径中,如:
$PROJ_DIR$\..\..\Fatfs

二,移植NANDFLASH驱动接口
1,把stm32f10x_stdperiph_lib_v3.0.0\Project\Examples\FSMC\NAND下的fsmc_nand.c复制到
D:\works\EK-STM3210E-UCOSII\Drivers下,并加入到工程的DRV文件组;
2,把stm32f10x_stdperiph_lib_v3.0.0\Project\Examples\FSMC\NAND下的fsmc_nand.h复制到
D:\works\EK-STM3210E-UCOSII\Include下;
3,在fsmc_nand.c前添加上#include "stm32f10x_conf.h",并把系统中的 "stm32f10x_conf.h"
文件的/* #include "stm32f10x_fsmc.h" */注释打开;
三,修改FATFS的配置文件
1,把D:\works\EK-STM3210E-UCOSII\Fatfs下的ff.h中的宏定义:

[cpp] view plaincopy

  • #define _USE_MKFS 0
  •   #define _CODE_PAGE 932
  •   #define _FS_RPATH 0
  •   #define _MAX_SS  512
  •   修改为:  
  •   #define _USE_MKFS 1
  •   #define _CODE_PAGE 936
  •   #define _MAX_SS  <span style="font-size:18px;color:#3333ff;">2048
  • </span>  #define _FS_RPATH 1  


2,把D:\works\EK-STM3210E-UCOSII\Fatfs下的integer.h的宏定义:

[cpp] view plaincopy

  • typedef
    enum { FALSE = 0, TRUE } BOOL;  
  • 修改为:  
  • typedef
    bool
    BOOL;//typedef enum { FALSE = 0, TRUE } BOOL;


四,修改FATFS的DISK/IO接口
1,把diskio.c复制后改名为nandio.c替换掉工程中的diskio.c,并添加到EWARM的工程中的
  “FATFS”文件组;
2,媒介初始化直接返回正常的0:

[cpp] view plaincopy

  • DSTATUS disk_initialize (BYTE drv)  
  • {  return 0;}  


3,媒介状态查询直接返回正常的0:
  
[cpp] view plaincopy

  • DSTATUS disk_status (BYTE drv)  
  •   {  return 0;}  


4,取系统系统直接返回0(自己可以按格式修改为真实时间):

[cpp] view plaincopy

  • DWORD get_fattime (void)  
  • {  return 0;}  
继承事业,薪火相传
返回列表