реклама на сайте
подробности

 
 
> USB host, bootloader
Serg_el
сообщение Jun 11 2012, 08:09
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 302
Регистрация: 13-12-06
Из: Togliatti
Пользователь №: 23 473



Доброго времени суток всем форумчанам!

Возникла задача сделать загрузчик, который позволит обновлять прошивку с USB флешки, вставленной в девайс. Классическая стратегия подразумевает 2 отдельные программы для устройства: загрузчик и код, который будет обновляться. В данном случае загрузчик должен содержать библиотеки для работы с USB и FAT систему, т.е. размер загрузчика в данном случае достаточно большой. Сама же программа в период отладки также должна содержать USB и FAT для удобства работы, но это уже очень нерационально. Как в данном случае можно решить вопрос удобства? Как вариант вижу отключение в основной программе библиотек для работы с USB и FAT при окончательной компиляции, но боюсь не будет ли из-за этого постоянной путаницы.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kovigor
сообщение Jun 11 2012, 10:28
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Serg_el @ Jun 11 2012, 11:09) *
В данном случае загрузчик должен содержать библиотеки для работы с USB и FAT систему, т.е. размер загрузчика в данном случае достаточно большой.


Для того, чтобы на диске с FAT найти в корневом каталоге один файл с заданным названием и прочитать его, реализовывать в своем устройстве полную поддержку FAT нет необходимости. В этом случае задача многократно упрощается, особенно в случае с FAT16 ...
Go to the top of the page
 
+Quote Post
Serg_el
сообщение Jun 11 2012, 10:43
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 302
Регистрация: 13-12-06
Из: Togliatti
Пользователь №: 23 473



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


Т.е. в любом случае имеем 2 копии FAT: полную и урезанную. Т.к. заниматься поиском нужных для копирования секторов при наличии реализованной FAT совсем не хочется.
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jun 11 2012, 11:02
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



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


Делал очень похожую систему. Команда обновления прошивки приходила в устройство от компьютера. Получив эту команду, устройство перегружалось посредством Watchdog'а (WDT). После перезагрузки устройство анализировало, чем эта перезагрузка была вызвана. Если это была перезагрузка после обычного включения питания, то выполнялся переход к выполнению основной программы. Если же перезагрузка выполнялась по инициативе WDT, то выполнялся переход к выполнению загрузчика. В этом случае и основное ПО, и загрузчик использовали один и тот же код ...
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 07:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01378 секунд с 7
ELECTRONIX ©2004-2016