Example SDFATSpeed for ARMGS10

Материал из eeWiki - открытая энциклопедия по электронике
Перейти к: навигация, поиск

Тестирование работы файловой системы FAT32 от фирмы Keil
на плате ARMGeoSpyder 1.0

Данный проект демонстрирует технику портирования и использования файловой системы FAT32 в реализации от фирмы Keil.

Keil FAT32 отличают:

  • легкость портирования,
  • сравнительно небольшие размеры в ряду embedded файловый систем
  • интеграция в стандартную библиотеку ввода/вывода языка Си
  • способность работы в многозадачной среде

Каковы же скоростные характеристики этой файловой системы показывает этот проект.


Установки микроконтроллера и компилятора:

  • Частота процессора - 260 МГц
  • Частота шины HCLK - 130 Мгц
  • Частота периферии - 20 Мгц
  • Максимальная оптимизация по скорости

Файл проекта:Файл:ARMGS10 SDFATSPEED.zip
Размер кода - 63 кБайта, включая операционную систему.

Результаты


Тестирование проводилось на microSD карте фирмы Kingston объемом 2 Гбайта.
Карта форматировалась, затем записывалось 100 файлов размером по 1 МБайту, после чего файлы читались и сверялось их содержимое.
В заключении файлы стирались
Частота тактирования SD карты равнялась 26 МГц, использовался 4-х битный режим.
Скорость чтения и записи приводятся без учета времени на открытие и закрытие файла
В файловой системе был выделен кэш размером 64 Кбайта.


Время форматирования карты без стирания ~1 сек Среднее время открытия файла Среднее время закрытия файла
Средняя скорость записи файлов 5 МБайт/с (delta=30 мс) 39 мс (delta=230 мс) 12.6 мс (delta=10 мс)
Средняя скорость чтения файлов 8.9 МБайт/с (delta=300 мс) 5 мс (delta=9 мс) 2 мкс (delta=1 мкс)
Средняя длительность стирания файлов 22 мс (delta=210 мс)


Параметр delta равен разнице между зафиксированными минимальным и максимальным значениями при измерении на 100 файлах.
SD карты имеют особенность делать непредсказуемые задержки при чтении и записи поэтому параметр deltа может иметь большие значения.

При чтении на компьютере эта же SD карта показывала при записи 2 МБайт/c, а при чтении 12 МБайт/c.
При прямом чтении блоков этой же SD карты с использованием драйверов из этого проекта на платформе ARMGeoSpyder 1.0 была достигнута скорость 14 МБайт/c