swampman 0 15 июня, 2010 Опубликовано 15 июня, 2010 (изменено) · Жалоба Здравствуйте. Собственно необходимо реализовать обновление основной программы по Ethernet для проца at91sam7x. Порывшись в форуме я нашел следующие варианты: 1) В основной программе обновление происходит через ramfunc, но меня несколько смущает необходимость реализовывать TCP/IP стек в ramfunc. 2) BootLoader располагается в начале флэш-памяти и проц всегда стартует с него, основная программа располагается также во флэш. При обновлении FirmWare бутлодер работает с Ethernet и переписывает основную программу и после верификации передает управление на неё. 3) При обновлении основная программа закачивает новое FirmWare во внешний носитель (например DataFlash), затем выходит в бутлодер, который просто переписывает FirmWare из внешнего носителя во внутреннюю флэш. Какой из вариантов является наиболее приемлемым, или предложите свой. Заранее благодарен. Изменено 15 июня, 2010 пользователем vladik Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 15 июня, 2010 Опубликовано 15 июня, 2010 · Жалоба Делал по второму варианту. ИМХО, наиболее правильный путь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dron_Gus 2 16 июня, 2010 Опубликовано 16 июня, 2010 · Жалоба Если делать по второму варианту, то бутлоадер с tcp/ip стеком не хило вырастает. Делал по третьему варианту. Наличие внешней флешки достаточного объема позволяет хранить старые версии и в случае чего откатываться назад. Использовал AT45 в качестве хранилища. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
swampman 0 16 июня, 2010 Опубликовано 16 июня, 2010 · Жалоба Благодарю за ответы. В третьем варианте есть опасность, что однажды при старте проца бутлодер может не обнаружить в носителе валидного FirmWare, и тогда придется физически добираться до платы. Но конечно подкупает своей простотой, в общем пока размышляю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dron_Gus 2 16 июня, 2010 Опубликовано 16 июня, 2010 · Жалоба И на внешнем носителе и во внутреннем флешь? Это постараться надо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 16 июня, 2010 Опубликовано 16 июня, 2010 · Жалоба При условии наличия внешнего носителя вполне рабочий вариант. Мне не нравится только распыление функций загрузчика на две разные программы. Если удаленная загрузка используется в процессе написания и отладки основной программы, то это чревато неприятными сюрпризами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
LightElf 0 16 июня, 2010 Опубликовано 16 июня, 2010 · Жалоба Если делать по второму варианту, то бутлоадер с tcp/ip стеком не хило вырастает. Будет весь бутлоадер 4-8 килобайт, в зависимости от фишек (шифрование образа, аутентификация, dhcp и все такое). Если например вокруг uIP делать. Ну или свой udp/ip стек соорудить, оно не сложно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться