Flash文件系統
深圳市米爾科技有限公司是ARM公司官方授權全線工具產品代理商, 提供ARM公司原裝正版開發工具(包括本產品 MDK-ARM)的銷售服務,以及ARM工具產品的市場推廣、產品更新、技術支持和售后服務。
概念:MDK-ARM也稱KEIL MDK-ARM、KEIL ARM、Realview MDK、I-MDK、uVision4 等,系為同一產品。

MDK-Professional版本包括一個Flash文件系統,能夠讓你的嵌入式應用程序在標準的存儲設備(例如ROM、RAM和SD/MMC/SDHC內存卡)上面進行創建、保存、讀取和修改文件操作。
產品亮點
-
標準的ANSI C文件I/O應用接口
-
同時支持NOR Flash和NAND Flash
-
RAM、ROM和SD/MMC/SDHC內存卡
-
兼容Windows的FAT12/FAT16/FAT32文件系統格式(包括子目錄和長文件名支持)
-
SD/MMC卡文件高速緩沖提供了高速讀/寫訪問
-
可重載和線程安全操作
-
可同時訪問多個存儲設備
-
基于對話框的μVision 配置向導設置
-
提供完整的 文檔 和SD/MMC/SDHC 實例項目
- 詳見Flash文件系統特性的完整列表
許多基于ARM內核的微控制器對一個標準的文件系統有實際的需求。在Flash文件系統幫助下,你可以在嵌入式應用程序中實現新的特性,像數據記錄、在備用模塊中存儲程序狀或者存儲固件升級。
1. Flash文件系統作為MDK-Professional版本中的一部分,以二進制格式來被提供。其它的MDK-ARM編輯器均不支持。
2. 在商業產品中,要實現支持帶長文件名的文件系統,則需要得到一份來自Microsoft公司的許可。
Flash文件系統的特點
特點 | |
文件系統支持 | |
ANCI C 庫 API (fopen, fread, etc) |
![]() |
FAT12, FAT16, FAT32 |
![]() |
子文件夾支持 |
![]() |
長文件名支持 |
![]() |
ROM中文件表 |
![]() |
文件系統的碎片整理 |
![]() |
媒體支持 | |
ROM |
![]() |
RAM |
![]() |
Flash |
![]() |
SPI Flash |
![]() |
SD/MMC/SDHC Cards | 1-bit, 4-bit & SPI interfaces |
最大設備內存大小 | 32GB |
其他特點 | |
時間標記 |
![]() |
同時訪問不同的媒體 |
![]() |
多塊讀取和寫入命令 |
![]() |
SD / MMC文件緩存 |
![]() |
Flash ROM設備驅動程序 (與ULINK Flash Driver類似) |
![]() |
多線程實現 |
![]() |
存儲卡格式 使用優化的簇大小和對齊 |
![]() |
存儲卡熱插拔 |
![]() |
Flash文件系統性能
目標板 | 設備 | 內核 | CPU [MHz] | 卡接口 | 寫 [KB/s] | 讀 [KB/s] |
MCBSTM32 |
ST STM32 |
Cortex-M3 | 72.0 |
SPI at 18MHz |
711.1 | 758.1 |
LM3S8962 |
TI LM3S8962 |
Cortex-M3 | 50.0 |
SPI at 12.5MHz |
537.8 | 607.6 |
LM3S6965 |
TI LM3S6965 |
Cortex-M3 | 50.0 |
SPI at 12.5MHz |
539.2 | 603.6 |
LM3S3768 |
TI LM3S3768 |
Cortex-M3 | 50.0 |
SPI at 12.5MHz |
539.5 | 603.8 |
AT91SAM9260-EK | Atmel AT91SAM9160 | ARM9 | 96.1 |
SD4 at 25MHz |
4785.0 | 5044.0 |
AT91SAM9261-EK | Atmel AT91SAM9161 | ARM9 | 96.1 |
SD4 at 25MHz |
4790.6 | 5069.3 |
AT91SAM9G20-EK | Atmel AT91SAM9G20 | ARM9 | 96.1 |
SD4 at 25MHz |
4899.5 | 5418.0 |
AT91SAM9RL-EK | Atmel AT91SAM9RL64 | ARM9 | 96.1 |
SD4 at 25MHz |
4096.0 | 5211.2 |
MCB2460 | NXP LPC2468 | ARM7 | 48.0 |
SD4 at 24MHz |
4084.3 | 5525.9 |
MCB2360 | NXP LPC2368 | ARM7 | 48.0 |
SD4 at 24MHz |
3946.3 | 5330.6 |
MCB2140 | NXP LPC2148 | ARM7 | 60.0 |
SPI at 7.5MHz |
299.4 | 313.4 |
MCBSTR9 | ST STR912 | ARM9 | 48.0 |
SPI at 12MHz |
355.2 | 357.1 |
MCBSTR750 | ST STR750 | ARM7 | 60.0 |
SPI at 15MHz |
402.2 | 416.1 |
1. 給出的數字均是工作在4KB塊里占用4MB數據取得。
Flash文件系統的內存要求
文件系統組件 | 代碼大小 (KBytes) | RAM大小 (KBytes) |
stdio庫核 | 4.73 | 0.94 |
文件系統核 | 2.98 | 0.47 |
FAT文件系統 | 代碼大小(KBytes) | RAM大小(KBytes) |
LFN支持的FAT | 9.41 | 0.83 |
存儲卡支持 | 1.34 | 0 |
STM32F2xx SDIO HW 驅動 | 0.85 | 0 |
LPC17xx SPI 驅動 | 0.36 | 0 |
NAND 支持(FTL) | 8.54 | 0.34 + (2* page size) |
STM32F2xx NAND 驅動 | 1.41 | 0 |
SAM3xx NAND 驅動 | 1.02 | 0 |
嵌入式Flash文件系統 | 代碼大小(KBytes) | RAM大小(KBytes) |
嵌入式Flash文件系統 | <5.00 | 0.28 |
SST39x320x Flash HW 驅動 | 0.22 | 0.01 |
STR91x Flash HW 驅動 | 0.31 |
1. 所有的實例數字基于Cortex-M3內核。
2. 所有值都以最小的數據緩沖區,并沒有應用程序代碼的最低要求。
3. 典型的NAND頁大小 – 小容量(512B+16B),大容量(2048B+64B)。
更多內容