Процедура загрузки прошивки
Сетевой хост должен использовать следующую процедуру, чтобы загрузить файл прикладной прошивки в DS:
- Сначала нужно проверить, не запущен ли уже NetLoader. Для этого отправьте команду Echo (X) [прикладная прошивка/ NetLoader] и проверьте флаг m в данных ответа (см. как запускается NetLoader). Если NetLoader ещё не запущен, выполните следующие шаги:
- Сетевой хост должен выполнить вход (если он ещё не выполнен) с помощью команды Login (L);
- Затем сетевой хост должен отправить команду Jump To Netloader (N). Это запустит NetLoader;
- Лучше убедиться, что NetLoader действительно запущен, отправив ещё одну команду Echo (X) и проверив состояние флага m;
- После запуска NetLoader сетевой хост должен отправить команду Start Over (Q), чтобы сбросить процесс загрузки данных;
- Затем сетевой хост должен отправить столько команд Data Block (D), сколько нужно, чтобы загрузить весь файл прошивки;
- По окончании загрузки хост должен отправить команду Verify and Start Firmware (E), чтобы запустить загруженную прошивку. Перед следующим шагом хосту следует подождать около 2 секунд, чтобы прошивка успела запуститься;
- Последним шагом процедуры лучше снова отправить команду Echo (X), чтобы проверить, что новая прошивка действительно работает.
Приведённая процедура, разумеется, упрощена: она не учитывает все возможные ошибки, которые могут возникнуть практически на любом шаге загрузки прошивки. Исполнитель обновления должен внимательно анализировать результат каждого шага и правильно реагировать на разные коды ошибок, которые возвращает DS.
Также в процедуре выше не показано использование команды Select In Broadcast Mode (W), которая позволяет программировать DS, IP-адрес которого недоступен (см. широковещательное UDP-программирование). NetLoader также поддерживает похожую команду (см. команду Select In Broadcast Mode (W)). Важно понимать, что, поскольку NetLoader - это отдельный компонент прошивки, команду Select In Broadcast Mode (W) нужно использовать дважды:
- Команду W нужно использовать в первый раз до отправки команды Login (L) и команды Jump To Netloader (N). Так DS заранее выбирается для широковещательного доступа, пока он ещё работает под управлением прикладной прошивки.*
- Команду W нужно использовать во второй раз, когда NetLoader уже запущен, до начала загрузки файла (команда Start Over (Q), команды Data Block (D) и команда Verify and Start Firmware (E))*.
* Разумеется, в этом случае эти команды нужно отправлять как UDP-широковещательные.