Форматирование флеш-диска
В этом разделе рассматривается: fd.format, fd.formatj.
Прежде чем флеш-диск можно будет использовать, его необходимо отформатировать. При форматировании выделяется и инициализируется служебная область диска. Она состоит из двух загрузочных секторов, а также нескольких секторов под таблицу файловых записей (FRT), таблицу размещения файлов (FAT) и, при необходимости, журнал транзакций. Подробности - в разделе Распределение областей диска.
Форматирование выполняется методами fd.format или fd.formatj. В качестве аргументов они принимают два параметра: общее число секторов, которое займёт диск, и максимальное число файлов, которое вы хотите хранить на диске. У fd.formatj есть и третий аргумент - число секторов, отводимых под журнал транзакций. fd.format не выделяет под журнал ни одного сектора, то есть это равносильно размеру журнала 0.
Не скупитесь при выделении области журнала. Рекомендуемый размер - 50-100 секторов. В секторы журнала записывается постоянно, и чем их больше, тем дольше служит ваша флеш-память.
Общее число секторов не может превышать размер области данных. То есть максимальный «полный» размер диска - fd.availableflashspace секторов. Флеш-диску нужно несколько секторов для внутреннего обслуживания, поэтому реальная полезная ёмкость диска будет меньше. Как узнать текущую ёмкость диска и получить другие полезные сведения, объясняется в разделе Проверка параметров диска. Существует также минимально допустимый общий размер диска: число секторов, занимаемых диском, должно как минимум хватать для служебных данных.
При отладке приложения на устройствах с общей флеш-памятью используйте только часть области данных, а часть оставьте свободной. Так между данными и областью прошивки и приложения образуется промежуток из неиспользуемых секторов, и приложение сможет (в основном) расти, не повреждая область данных.
Объект fd. хранит на диске до 64 файлов в единственном «корневом» каталоге. Если столько файлов не нужно, можно задать меньшее число. Это уменьшит число служебных секторов, необходимых диску. Экономия невелика, но немного места сэкономить можно. Каждая файловая запись занимает 64 байта, поэтому в одном секторе таблицы FRT помещается четыре записи. По этой причине заданное вами число файлов всегда округляется до числа, кратного четырём. Например:
'format a disk to occupy 3/4th of available space and store at least 10 files
If fd.formatj((fd.availableflashspace/4)*3,10,100)<>PL_FD_STATUS_OK Then
'some problem...
End If
'actual maximum number of files will be 12 (adjusted up from 10 to be a multiple of 4)
После форматирования диск будет в размонтированном состоянии, и перед любыми операциями с диском его нужно смонтировать.