Полная версия этой страницы:
BootLoader для sam7x
vladik
Jun 15 2010, 16:25
Здравствуйте.
Собственно необходимо реализовать обновление основной программы по Ethernet для проца at91sam7x. Порывшись в форуме я нашел следующие варианты:
1) В основной программе обновление происходит через ramfunc, но меня несколько смущает необходимость реализовывать TCP/IP стек в ramfunc.
2) BootLoader располагается в начале флэш-памяти и проц всегда стартует с него, основная программа располагается также во флэш. При обновлении FirmWare бутлодер работает с Ethernet и переписывает основную программу и после верификации передает управление на неё.
3) При обновлении основная программа закачивает новое FirmWare во внешний носитель (например DataFlash), затем выходит в бутлодер, который просто переписывает FirmWare из внешнего носителя во внутреннюю флэш.
Какой из вариантов является наиболее приемлемым, или предложите свой. Заранее благодарен.
aaarrr
Jun 15 2010, 16:28
Делал по второму варианту. ИМХО, наиболее правильный путь.
Dron_Gus
Jun 16 2010, 06:45
Если делать по второму варианту, то бутлоадер с tcp/ip стеком не хило вырастает. Делал по третьему варианту. Наличие внешней флешки достаточного объема позволяет хранить старые версии и в случае чего откатываться назад. Использовал AT45 в качестве хранилища.
vladik
Jun 16 2010, 11:03
Благодарю за ответы.
В третьем варианте есть опасность, что однажды при старте проца бутлодер может не обнаружить в носителе валидного FirmWare, и тогда придется физически добираться до платы. Но конечно подкупает своей простотой, в общем пока размышляю.
Dron_Gus
Jun 16 2010, 11:35
И на внешнем носителе и во внутреннем флешь? Это постараться надо.
aaarrr
Jun 16 2010, 11:40
При условии наличия внешнего носителя вполне рабочий вариант. Мне не нравится только распыление функций загрузчика на две разные программы. Если удаленная загрузка используется в процессе написания и отладки основной программы, то это чревато неприятными сюрпризами.
LightElf
Jun 16 2010, 15:34
Цитата(Dron_Gus @ Jun 16 2010, 10:45)

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