Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: USB host
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Serg_el
Доброго времени суток всем форумчанам!

Возникла задача сделать загрузчик, который позволит обновлять прошивку с USB флешки, вставленной в девайс. Классическая стратегия подразумевает 2 отдельные программы для устройства: загрузчик и код, который будет обновляться. В данном случае загрузчик должен содержать библиотеки для работы с USB и FAT систему, т.е. размер загрузчика в данном случае достаточно большой. Сама же программа в период отладки также должна содержать USB и FAT для удобства работы, но это уже очень нерационально. Как в данном случае можно решить вопрос удобства? Как вариант вижу отключение в основной программе библиотек для работы с USB и FAT при окончательной компиляции, но боюсь не будет ли из-за этого постоянной путаницы.
kovigor
Цитата(Serg_el @ Jun 11 2012, 11:09) *
В данном случае загрузчик должен содержать библиотеки для работы с USB и FAT систему, т.е. размер загрузчика в данном случае достаточно большой.


Для того, чтобы на диске с FAT найти в корневом каталоге один файл с заданным названием и прочитать его, реализовывать в своем устройстве полную поддержку FAT нет необходимости. В этом случае задача многократно упрощается, особенно в случае с FAT16 ...
Serg_el
Цитата(kovigor @ Jun 11 2012, 14:28) *
Для того, чтобы на диске с FAT найти в корневом каталоге один файл с заданным названием и прочитать его, реализовывать в своем устройстве полную поддержку FAT нет необходимости. В этом случае задача многократно упрощается, особенно в случае с FAT16 ...


Т.е. в любом случае имеем 2 копии FAT: полную и урезанную. Т.к. заниматься поиском нужных для копирования секторов при наличии реализованной FAT совсем не хочется.
kovigor
Цитата(Serg_el @ Jun 11 2012, 13:43) *
Т.е. в любом случае имеем 2 копии FAT: полную и урезанную. Т.к. заниматься поиском нужных для копирования секторов при наличии реализованной FAT совсем не хочется.


Делал очень похожую систему. Команда обновления прошивки приходила в устройство от компьютера. Получив эту команду, устройство перегружалось посредством Watchdog'а (WDT). После перезагрузки устройство анализировало, чем эта перезагрузка была вызвана. Если это была перезагрузка после обычного включения питания, то выполнялся переход к выполнению основной программы. Если же перезагрузка выполнялась по инициативе WDT, то выполнялся переход к выполнению загрузчика. В этом случае и основное ПО, и загрузчик использовали один и тот же код ...
skripach
Ну сэкономите вы 10кБайт, ну 15 в лучшем случае. Что это вам даст? У вас контроллер с USB хостом и 32я кБайтами флеш?
Делал загрузчик с USB флешки + SD карта. Какое-то обединение загрузчика и приложения стоит делать только в самом крайнем случае я считаю.
Serg_el
Наверное и правда не стоит экономить особо сильно на flash памяти. Если память критична, то "вручную" искать файл без FAT.
Basilij
Здравствуйте уважаемые Знатоки.

Дабы не плодить новых тем со схожей тематике, позволю себе задать вопрос в этой ветке.
Господа, где можно почитать про принципы реализации самопрошиви STM32 с USB флешки, или SD карты?

Заранее спасибо за комментарии.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.