はじめに:あなたは以下のリンクをクリックすることができ、必要に応じてI STM32F1コードの移植脂肪は、私のリソースにアップロードされています:https://download.csdn.net/download/qq_40831778/11916818
I.概要
1、ファイルシステムの紹介:
(1)ファイルシステム:制度的管理ソフトウェアとストアのファイル情報。
(2)一般的に使用されるファイルシステム:
- FAT / FATFS
- NTFS(ファイルベースのセキュリティシステムは、使用される固有の構造Wundow NTファイルシステムです。
- CDFS:CDFSファイルシステムは、ほとんどのCDであります
2、FATFSファイルシステムの紹介:
FATFSは良いハードウェアプラットフォームの独立、8051、PIC、ARMおよび他のマイクロコントローラに移植することができている、完全に標準のC言語で書かれた小さな組み込みシステム設計のために特別に設計された、完全に自由でオープンソースFATファイルシステムモジュール、、、です単純な変更を行います。独立したバッファを、複数のファイルの読み取り/書き込み可能、特に8ビットマイクロコントローラと最適化された16ビットマイクロコントローラ用することができます。これは、FAT12、FAT16、FATI32、複数の記憶媒体のためのサポートをサポートしています。
3、FATFSファイルシステムの特徴:
- ウィンドウ互換FATファイルシステム(FAT12をサポート/ FAT16 / FAT32)。
- 以下のコード、および高効率。
- C言語で書かれた、プラットフォームに依存しない、ポータブルシンプル。
- 以上の構成オプション:(最大10のボリュームに、物理的ドライブ又はパーティション)マルチボリュームをサポートするために、ANSI / OEMコードページは複数の、長いファイル名、RTOSのサポート、複数のセクタサイズのサポートをサポートします。
4、文書プレゼントメインファイルシステム:
ファイル名 |
機能 |
説明 |
ffconf.h |
FATFSモジュール設定ファイル |
あなたは、必要に応じてパラメータを設定する必要があります |
ff.h |
ファイルを含めるのが一般的FATFSとアプリケーションモジュール |
変更する必要はありません |
ff.c |
FATFSモジュールのソースコード |
変更する必要はありません |
diskio.h |
FATFSとディスクI / Oモジュール含む一般的なファイル |
変更する必要はありません |
diskio.c |
FATFSおよびディスクI / Oモジュールインタフェースレイヤファイル |
プラットフォーム依存のコードは、ユーザーの記憶媒体に応じて関数を記述する必要があります |
interger.h |
データ型の定義 |
そして、コンパイラ関連 |
第二に、移植を開始
1、我々はオープン、ダウンロードは通常は、我々が開いて2つのフォルダがあるでしょう、良い情報源を脂肪のsrcフォルダを、私たちはFATSのソースを必要とし、このフォルダ
2は、我々はまた、srcフォルダがあることに注意してください、これは(などの中国の支援、など)オプションの外部機能です。一般的に、我々は中国を使用し、それがうまく内部のプロジェクトcc926.cに追加されます。
図3は、我々はSTM32、通常、私たちだけにソースファイルを追加する必要がff.c、cc936.c、diskio.c、うまく内部のプロジェクトに追加します。、良い後にコンフィギュレーション・ファイルを開始します。
4、ffconf.h設定手順
FATFS各種設定についてです。このffconf.hヘッダファイルには、我々は彼らのニーズに応じて、我々は彼らが望む標準に達しているFATFSをカットすることができます。私たちは、これらの設定は、すべてのそれを見て:
1)_FS_TINY
この設定は、標準モード、またはマイナーモードを使用するように設定されています。0:我々はここで設定した標準モードを使用しています。
2)_FS_READONLY
かどうかは読み取り専用モードを使用するには、我々は読み書きすることを選択しました。セット:0。
3)_FS_MINIMIZE
この設定は、これらのトリミングに機能の特定の一部をカットするかどうかを選択することで、次の設定手順、我々はここで使用することをフル機能のモデルを表示することができます。セット:0。
4)_USE_STRFUNC
これは、我々が使用することを選択し、文字列クラスの操作をサポートするかどうかを設定するために使用されます。To:1。
5)_USE_MKFS
ここで我々が使用することを選択し、使用する形式を使用します。To:1。
6)_USE_FASTSEEK
使用して、我々が使用することを選択し、高速な位置決めが可能になります。To:1。
7)_USE_LABEL
ディスクラベル機能を有効にするかどうか。使用は、また、使用することはできませんすることができます。ここでは使用しています。To:1。
8)_USE_FORWARD
これは、我々はそれを無視し、標準モードを使用し、ここで、TINYモデルに設定されています。
9) _CODE_PAGE
这个用于设置语言类型。我们使用的中文。设置为:936
10) _USE_LFN
该选项用于设置是否支持长文件名(还需要_CODE_PAGE 支持),取值 范围为 0~3。0,表示不支持长文件名,1~3 是支持长文件名,但是存储地方 不一样。我们这里就默认使用 FATFS 本身的存储方式了。设置为:1。
11) _MAX_LFN
设置最大文件名长度,我们直接设置最大。设置为:255。
12) _LFN_UNICODE
是否使用 FATFS 的字符编码。我们不使用。设置为:0
13) _FS_RPATH
这里也是一些函数裁剪,我们这里设置为:1。
14) _VOLUMES
这里设置的是支持的卷轴数量,我们挂载 SD 卡,有时候可以挂载下
FLASH,所以这里我们设置为两个:2。
15) _MAX_SS
这里是设置扇区缓冲的最大值,我们设置为:512。
16) _MULTI_PARTITION
是否使用多重分区分配。我们这里设置为:0。
17) _USE_ERASE 使用使用扇区擦除。我们这里不那么麻烦,想使用的时候在设置。设置 为:0。
18) _WORD_ACCESS
这里定义使用权限。一般不使用。我们设置为:0。
19) _FS_REENTRANT
20) _FS_TIMEOUT
21) _SYNC_t
22) _FS_LOCK
这几个设置,我们都没有使用到,所以直接保持默认状态就好。
4、 diskio.c 函数介绍
(1)disk_initialize()函数
2) disk_status()函数
3、disk_read()函数
4) disk_write()函数
5) disk_ioctl()函数
6) get_fattime()函数
三、fats的使用
我们首先需要添加SPI通信协议,之后我们根据自己所要使用的模块,更改ffconf.h文件,以及 diskio.c 里面的函数就可以正常使用了。
最后,看到我这篇文章的朋友,如果我的文章真的帮助到了你,记得帮我点个赞,如果希望和我共同学习,共同交流,可以关注我一下。本人QQ:2992789432