Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: BootLoader для sam7x
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
vladik
Здравствуйте.
Собственно необходимо реализовать обновление основной программы по Ethernet для проца at91sam7x. Порывшись в форуме я нашел следующие варианты:
1) В основной программе обновление происходит через ramfunc, но меня несколько смущает необходимость реализовывать TCP/IP стек в ramfunc.
2) BootLoader располагается в начале флэш-памяти и проц всегда стартует с него, основная программа располагается также во флэш. При обновлении FirmWare бутлодер работает с Ethernet и переписывает основную программу и после верификации передает управление на неё.
3) При обновлении основная программа закачивает новое FirmWare во внешний носитель (например DataFlash), затем выходит в бутлодер, который просто переписывает FirmWare из внешнего носителя во внутреннюю флэш.

Какой из вариантов является наиболее приемлемым, или предложите свой. Заранее благодарен.
aaarrr
Делал по второму варианту. ИМХО, наиболее правильный путь.
Dron_Gus
Если делать по второму варианту, то бутлоадер с tcp/ip стеком не хило вырастает. Делал по третьему варианту. Наличие внешней флешки достаточного объема позволяет хранить старые версии и в случае чего откатываться назад. Использовал AT45 в качестве хранилища.
vladik
Благодарю за ответы.
В третьем варианте есть опасность, что однажды при старте проца бутлодер может не обнаружить в носителе валидного FirmWare, и тогда придется физически добираться до платы. Но конечно подкупает своей простотой, в общем пока размышляю.
Dron_Gus
И на внешнем носителе и во внутреннем флешь? Это постараться надо.
aaarrr
При условии наличия внешнего носителя вполне рабочий вариант. Мне не нравится только распыление функций загрузчика на две разные программы. Если удаленная загрузка используется в процессе написания и отладки основной программы, то это чревато неприятными сюрпризами.
LightElf
Цитата(Dron_Gus @ Jun 16 2010, 10:45) *
Если делать по второму варианту, то бутлоадер с tcp/ip стеком не хило вырастает.

Будет весь бутлоадер 4-8 килобайт, в зависимости от фишек (шифрование образа, аутентификация, dhcp и все такое). Если например вокруг uIP делать. Ну или свой udp/ip стек соорудить, оно не сложно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.