[an error occurred while processing this directive] [an error occurred while processing this directive]
назначение FAT-а ...
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено з.а.С 17 июня 2002 г. 08:19
В ответ на: Ответ: Вопрос конечно интересен, но не совсем корректно задан 8-)... отправлено digger 16 июня 2002 г. 03:17

... обеспечивать какой то минимально разумный уровень файлового сервиса для пользователя. Исходя из того, что Вы написали, необходимость этого явным образом не просматривается. Ну да ладно... для тех "подводных камушков", о которых упомянуто в вашем сообщении, это не принципиально.

- отключение питания в момент открытия/закрытия файла
// Решается мониторингом состояния питания. Просто супервизором тут пожалуй не обойтись, нужена "железная" процедура разрешения подобного рода экстренного случая. Для устройств с питанием от сети, это - гарантированное время нахождения напряжения питания в пределах, достаточных для проведения аварийной записи, после установки сигнала Power_Fall или типа такого. Для устройств с автономным питанием, примерно то же, но тут всегда есть нюансы обусловленные конкретной реализацией. Зачастую проще и дешевле иметь "на борту" трёхвольтовую Li батарейку.
В любом случае, программа обслуживания аварийной записи - это приоритетное прерывание. К сожалению, не всегда можно себе позволить "держать курок взведенным", поэтому требование к качеству питания ещё выше.

- колличество файлов ; - Длина файла ; - Проверка на кол-во раз перезаписи страницы
// А вот эти проблемы "решабельные". И решаются они разбиением памяти на две области 8-). Что то типа Partition Tabble и Data Files area.

Несколько раз возникали подобного рода задачи, и решения были такими:

Для N EEPROM 24lc128/256/512 - добавлялась EEPROM 24lc16/32 для того, что бы не иметь геморроя с различными протоколами чтения/записи. Адрес на шине 24lc16/32 либо '0' либо '7' - это кому как нравится. Нулевой банк - заголовок FAT-а, CRC, смещения и структуры работы с областью DATA принятые "по умолчанию". Далее, каждый последующий банк - информация на одну микросхему 24lc128/256/512. Так "органичнее" адрес микросхемы вписывается в общую адресную структуру 8-). Само поле записи данных о файле, его типе, и пр. Можно описывать и "кофигурить" как угодно. У меня, обычно это структура из юнионов начального адреса файла и смещений, длинны файла, типа файла, даты создания файла и управляющих флагов. Номер файла, имя файла (это только информация для пользователя потому как не вижу смысла реализовавать сортировку файлов по имени и расширению на восьмиразрядных МК с их убогими рессурсами) и CRC. Плюбс ещё что то, что в данном проекте представляется необходимым.
Адресную структуру можно делать так, что бы полностью использовать все имеющееся пространство до байта, а можно реализовать относительную секторную адресацию 8-). О том, что может быть использована вся имеющаяся емкость памяти, до последнего байта, - речи уже быть не может, но сервисных возможностей ('defrag' например) станет больше. "Ни кто с нас не спросит, ни кто не осудит..." 8-)

Все так же и для микросхем Data Flash. С той лишь разницей, что адрес микросхем - через дешифратор адреса --> 'CS', и под "а'ля Partition" - EEPROM 93c56/66.

Вот, примерно так

__САмый_Злостный_Анонимус_Сергей

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru