Михась 4 6 июня, 2023 Опубликовано 6 июня, 2023 · Жалоба Нужен совет по процедуре обновления ПО через Ethernet. Есть опыт написания бутлоадеров через UART и SD карту. Теперь нужно написать бутлоадер для слепого датчика через Ethernet. Есть ограничение на объем бл - надо уложиться в 32к флешки и 64 килобайта ОЗУ. Бинарник может быть до 128кб. Поэтому буду организовывать прием бинарных блоков поверх UDP. Напишу специальное консольное приложение для программирования. Остается вопрос - как можно сделать самый простой способ получения IP адреса? Или уйти для перепрограммирования на уровень ip raw (arp)пакетов? Вообще уйти от уровня IP? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 6 июня, 2023 Опубликовано 6 июня, 2023 · Жалоба 56 minutes ago, Михась said: как можно сделать самый простой способ получения IP адреса? Насколько я знаю по стандарту доступны два способа: статическое и динамическое получение адреса. Но для UDP всё-равно нужен IP-стек. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Михась 4 6 июня, 2023 Опубликовано 6 июня, 2023 · Жалоба Я то хотел бы на IP/UDP остановиться. А если обмениваться broadcast UDP пакетами, на определенные порты? А в пакете серийный номер датчика? Так то основное ПО будет получать IP по DHCP. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 6 июня, 2023 Опубликовано 6 июня, 2023 · Жалоба 1 hour ago, Михась said: Я то хотел бы на IP/UDP остановиться. Я Вам детально вряд ли помогу, т.к. мой опыт ограничивается использованием готовых стеков, например LwIP. Зато там есть и DHCP для динамического конфигурирования IP-адреса. Также этот стек очень хорошо обсужден в интернетах, следовательно у Вас уже есть техподдержка. Сколько памяти занимает - не подскажу. Зависит от конфигурации, и я не был ограничен данным размером. Попробуйте. Может оказаться, что готовый стек применить более перспективно! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Михась 4 6 июня, 2023 Опубликовано 6 июня, 2023 · Жалоба Lwip будет использоваться однозначно. Интересен практический опыт реализации бутлоадера для безнтерфейсных приборов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 6 июня, 2023 Опубликовано 6 июня, 2023 · Жалоба 2 часа назад, Михась сказал: Остается вопрос - как можно сделать самый простой способ получения IP адреса? DHCP вроде довольно простой протокол. Особенно если ограничиться только получением IP через него. Другой вопрос - как вы потом будете узнавать полученный устройством IP? 18 минут назад, Михась сказал: Lwip будет использоваться однозначно. Тогда однозначно - под большим вопросом возможность уложиться в желаемые 32 КБ размера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Михась 4 6 июня, 2023 Опубликовано 6 июня, 2023 · Жалоба Надо помакетировать ПО, видимо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 6 июня, 2023 Опубликовано 6 июня, 2023 · Жалоба Если бутлоадер будет заниматься только своими делами (только обновлять прошивку, ранее загруженную в устройство рабочей прошивкой), а не ненужными ему функциями загрузки прошивки, то и проблем не будет ни с размером ни со способами получения/определения IP. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Михась 4 6 июня, 2023 Опубликовано 6 июня, 2023 (изменено) · Жалоба До этого я делал так - на SD карту через eth/lwip/tftp размещал шифрованный бинарник. Бутлоадер (размер 19 кб) уже прошивал найденный на карте бинарник. В самом плохом случае пользователь мог сам скопировать на карту бинарник, если основное приложение слетело в дребезги. Сейчас такого хранилища нет, специально закладывать неохота. Изменено 6 июня, 2023 пользователем Михась Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Михась 4 6 июня, 2023 Опубликовано 6 июня, 2023 · Жалоба А вот еще вариант- пусть бут будет клиентом и всегда при старте опрашивает некий "сервер обновлений" по фиксированному адресу и порту? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 6 июня, 2023 Опубликовано 6 июня, 2023 · Жалоба 2 hours ago, Михась said: А вот еще вариант- пусть бут будет клиентом и всегда при старте опрашивает некий "сервер обновлений" по фиксированному адресу и порту? Используйте TFTP. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 63 6 июня, 2023 Опубликовано 6 июня, 2023 · Жалоба On 6/6/2023 at 8:25 AM, jcxz said: DHCP вроде довольно простой протокол. Особенно если ограничиться только получением IP через него. Другой вопрос - как вы потом будете узнавать полученный устройством IP? Тогда однозначно - под большим вопросом возможность уложиться в желаемые 32 КБ размера. У меня на STM32F4xx загрузчик на LwIP, UDP, статический IP, HAL - адрес занимает порядка 36 кБайт. Правда у меня еще используется xprintf от http://elm-chan.org Если его выкинуть и выкинуть UART, то можно еще пару кило сэкономить. Если выкинуть HAL и переписать на "регистры" можно еще существенно сэкономить. On 6/6/2023 at 9:10 AM, jcxz said: Если бутлоадер будет заниматься только своими делами (только обновлять прошивку, ранее загруженную в устройство рабочей прошивкой), а не ненужными ему функциями загрузки прошивки, то и проблем не будет ни с размером ни со способами получения/определения IP. Это при условии, если есть место где хранить эту обновленную прошивку. В вашем случае, если не использовать внешний носитель, половину доступной памяти МК надо выделить под место для временного хранения обновления. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 6 июня, 2023 Опубликовано 6 июня, 2023 · Жалоба 42 минуты назад, dimka76 сказал: Это при условии, если есть место где хранить эту обновленную прошивку. В устройстве есть Ethernet. С чипом физики, трансформатором и т.п. И при этом пожалели денег на копеечную флешку? Вот уж точно - экономия на пуговицах... PS: Даже если чипа физики нет, а используется встроенная, то тогда значит МК - не из дешёвых. Один фиг. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 6 июня, 2023 Опубликовано 6 июня, 2023 · Жалоба 8 часов назад, Михась сказал: Я то хотел бы на IP/UDP остановиться. 7 часов назад, Михась сказал: Lwip будет использоваться однозначно. И зачем тянуть эту муть, размером со слона, с динамическими аллокаторами и пр ??? Есть куда более простые и маленькие по памяти стеки... 6 часов назад, Михась сказал: Сейчас такого хранилища нет, специально закладывать неохота. Вот и сделали себе попадос)) 1 час назад, jcxz сказал: то тогда значит МК - не из дешёвых. Один фиг. Не факт, вот тот же v3s, с которым сегодня возился, стоит копейку, со встроенной физикой, т.ч. это не показатель... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 63 6 июня, 2023 Опубликовано 6 июня, 2023 · Жалоба On 6/6/2023 at 3:33 PM, mantech said: И зачем тянуть эту муть, размером со слона, с динамическими аллокаторами и пр ??? Он вполне в 30 кБ поместится Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться