STM32-移植FATFS的NANDFLASH驱动
- UID
- 1029342
- 性别
- 男
|
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;}
|
|
|
|
|
|