Wb-mcu-fw-flasher: различия между версиями

Материал из Wiren Board
 
(не показано 27 промежуточных версий 5 участников)
Строка 1: Строка 1:
{{Draft}}
{{DISPLAYTITLE: Сервисная утилита wb-mcu-fw-flasher}}
{{DISPLAYTITLE: Сервисная утилита wb-mcu-fw-flasher}}
== Общая информация ==
Здесь описывается <code>wb-mcu-fw-flasher</code> — сервисная утилита для modbus-устройств Wiren Board с помощью которой вы сможете сбросить устройство к заводским настройкам или заменить его прошивку.


== Описание ==
Краткую инструкцию по прошивке устройств читайте в статье [[WB Modbus Devices Firmware Update | Обновление прошивок на устройствах Wiren Board]].
'''ВНИМАНИЕ:''' Мы не рекомендуем использовать эту утилиту для повседневного обновления прошивок устройств, используйте утилиту автоматического обновления [[wb-mcu-fw-updater]].


<code>wb-mcu-fw-flasher</code> — сервисная утилита для modbus-устройств Wiren Board с помощью которой вы сможете сбросить устройство к заводским настройкам или заменить его прошивку.
== Установка утилиты ==
{{Anchor|install}}
=== Контроллер Wiren Board ===
Утилита есть в репозитории контроллера, поэтому обновите список пакетов и установите ее:
<syntaxhighlight lang="bash">
apt update
apt install wb-mcu-fw-flasher
</syntaxhighlight>


== Подготовка к работе ==
=== ОС Linux ===
{{Wbincludes:Wb-mcu-fw-flasher Install}}
Скачайте файл для вашего устройства с расширением '''.deb''' в [https://github.com/wirenboard/wb-mcu-fw-flasher/releases нашем репозитории].


{{Wbincludes:Select Device Firmware}}
Для установки, выполните команды:
<syntaxhighlight lang="bash">
apt update
apt install ./wb-mcu-fw-flasher_1.3.1_amd64.deb #измените имя пакета, если необходимо
</syntaxhighlight>


=== Подготовка устройства ===
=== ОС Windows ===
Прошивать устройство лучше по стандартному адресу (на который устройство отвечает из основной программы).
[[Image: wb-mcu-fw-flasher-in-windows-cmd.png|400px|thumb|right| Утилита wb-mcu-fw-flasher выводит справку в командной строке Windows]]


Так же можно прошивать по широковещательному адресу «0», если у вас одно устройство на шине в режиме загрузчика.
Скачайте файл с расширением '''.exe''' в [https://github.com/wirenboard/wb-mcu-fw-flasher/releases нашем репозитории]. Установка не требуется.
 
Поэтому для прошивки нескольких устройств на шине можно:
#переводить в режим загрузчика (перезагрузкой по питанию или записью в регистр) и прошивать по отдельности с указанием нешироковещательного Modbus-адреса.
#переводить '''по очереди''' в режим загрузчика (перезагрузкой по питанию) и прошивать по адресу 0.
 
* '''Одновременная прошивка''' устройств невозможна — имеющаяся прошивка на устройствах будет испорчена.
* Перевести устройство в бутлоадер по широковещательному адресу 0 — '''нельзя'''!
*'''При прошивке с контроллера остановите wb-mqtt-serial:'''<pre>service wb-mqtt-serial stop</pre>
* Если вместо <code>wb-mqtt-serial</code> используется стороннее ПО, опрашивающее устройства по последовательному порту - остановите это стороннее ПО


== Аргументы командной строки ==
== Аргументы командной строки ==
Опции запуска утилиты wb-mcu-fw-flasher:
Опции запуска утилиты wb-mcu-fw-flasher.
{| class="wikitable"
{| class="wikitable"
! Параметр !! Описание !! Значение по умолчанию
! Параметр !! Описание !! Значение по умолчанию
Строка 37: Строка 39:
| -a || Адрес Modbus || 1
| -a || Адрес Modbus || 1
|-
|-
| -j || Отправить на устройство команду перехода в режим загрузчика ||
| -j || Отправить на устройство команду перехода в режим загрузчика со стандартными настройками соединения 9600N2||
|-
| -J || Отправить на устройство команду перехода в режим загрузчика с текущими настройками соединения (доступно начиная с версии 1.3.0) ||
|-  
|-  
| -b || Скорость порта (baudrate) || 9600
| -b || Скорость порта (baudrate) || 9600
Строка 51: Строка 55:
| -u || Восстановление заводских настроек UART и Modbus адреса ||
| -u || Восстановление заводских настроек UART и Modbus адреса ||
|-
|-
| -e || Сброс всех настроек до заводских ||
| -e || Стирает все настройки и калибровочные значения: датчики начнут показывать ерунду. <br>Не используйте, если не знаете, что делаете.||
|-
| -w || Стирает все настройки устройства, хранящиеся во Flash памяти. Доступно с версии загрузчика 1.2.0. <br>Не используйте, если не знаете, что делаете.||
|}
|}


== Загрузка прошивки в устройство ==
== Типичные сценарии использования ==
Итого, порядок выглядит так:
 
#При прошивке с контроллера остановите <code>wb-mqtt-serial</code>.
О том как выбрать файл прошивки для устройства, подготовить устройство к прошивке и примеры, смотрите в статье [[WB Modbus Devices Firmware Update#Ручное обновление | Обновление прошивок на устройствах Wiren Board]].
#Подключите устройство к RS-485.
 
#Скачайте файл прошивки, например, <code>mr6c__1.14.1_master_19c9ca5.wbfw</code>
=== Обновление прошивки, если устройство в обычном режиме ===
#Прошейте устройство утилитой wb-mcu-fw-flasher:<pre>wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 25 -f mr6c__1.14.1_master_19c9ca5.wbfw</pre>
Чтобы прошить устройств в обычном режиме, его нужно перевести в режим загрузчика опцией <code>-j</code>:
#После успешной прошивки устройство само выйдет из режима загрузчика и перезапустится в основной программе.
<syntaxhighlight lang="bash">
wb-mcu-fw-flasher -j -d <порт, на котором находится устройство> -a <modbus адрес устройства> -f <файл с прошивкой устройства.wbfw>
</syntaxhighlight>
 
=== Обновление прошивки, если устройство в режиме загрузчика ===
Если устройство находится в режиме загрузчика, то дополнительно готовить его не нужно:


Успешный процесс прошивки выглядит так:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
  wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 1 -f mr6c__1.14.1_master_19c9ca5.wbfw  
wb-mcu-fw-flasher -d <порт, на котором находится устройство> -a <modbus адрес устройства> -f <файл с прошивкой устройства.wbfw>
  /dev/ttyRS485-1 opened successfully.
  Send jump to bootloader command and wait 2 seconds...
  Error: Connection timed out.
  May be device already in bootloader, try to send firmware...
  mr6c__1.14.1_master_19c9ca5.wbfw opened successfully, size 12136 bytes
  Sending info block... OK
  Sending data block 89 of 89... OK.
  All done!
</syntaxhighlight>
</syntaxhighlight>


Пример ошибки при несовпадении сигнатуры:
==  Полезные ссылки ==
<pre>
* [[WB Modbus Devices Firmware Update | Обновление прошивки Modbus-устройств Wiren Board]]
  Sending info block...
* [[Firmware Repository For Wiren Board Modbus Devices |Репозиторий прошивок для Modbus-устройств Wiren Board]]
  Error while sending info block: Slave device or server failure
* [https://github.com/wirenboard/wb-mcu-fw-flasher/releases/download/v1.3.1/wb-mcu-fw-flasher_1.3.1_amd64.deb Скачать wb-mcu-fw-flasher для ОС Linux]
  Data format is invalid or firmware signature doesn't match the device
* [https://github.com/wirenboard/wb-mcu-fw-flasher/releases/download/v1.3.1/wb-mcu-fw-flasher_1.3.1.exe Скачать wb-mcu-fw-flasher для ОС Windows]
</pre>

Текущая версия на 09:15, 13 апреля 2024

Общая информация

Здесь описывается wb-mcu-fw-flasher — сервисная утилита для modbus-устройств Wiren Board с помощью которой вы сможете сбросить устройство к заводским настройкам или заменить его прошивку.

Краткую инструкцию по прошивке устройств читайте в статье Обновление прошивок на устройствах Wiren Board.

Установка утилиты

Контроллер Wiren Board

Утилита есть в репозитории контроллера, поэтому обновите список пакетов и установите ее:

apt update
apt install wb-mcu-fw-flasher

ОС Linux

Скачайте файл для вашего устройства с расширением .deb в нашем репозитории.

Для установки, выполните команды:

apt update
apt install ./wb-mcu-fw-flasher_1.3.1_amd64.deb #измените имя пакета, если необходимо

ОС Windows

Утилита wb-mcu-fw-flasher выводит справку в командной строке Windows

Скачайте файл с расширением .exe в нашем репозитории. Установка не требуется.

Аргументы командной строки

Опции запуска утилиты wb-mcu-fw-flasher.

Параметр Описание Значение по умолчанию
-d Устройство последовательного порта (обязательно)
-f Файл прошивки
-a Адрес Modbus 1
-j Отправить на устройство команду перехода в режим загрузчика со стандартными настройками соединения 9600N2
-J Отправить на устройство команду перехода в режим загрузчика с текущими настройками соединения (доступно начиная с версии 1.3.0)
-b Скорость порта (baudrate) 9600
-p Чётность (parity) N
-s Количество стопбитов 2
-r Адрес holding-регистра для перехода в режим загрузчика 129
-D Включить режим отладки
-u Восстановление заводских настроек UART и Modbus адреса
-e Стирает все настройки и калибровочные значения: датчики начнут показывать ерунду.
Не используйте, если не знаете, что делаете.
-w Стирает все настройки устройства, хранящиеся во Flash памяти. Доступно с версии загрузчика 1.2.0.
Не используйте, если не знаете, что делаете.

Типичные сценарии использования

О том как выбрать файл прошивки для устройства, подготовить устройство к прошивке и примеры, смотрите в статье Обновление прошивок на устройствах Wiren Board.

Обновление прошивки, если устройство в обычном режиме

Чтобы прошить устройств в обычном режиме, его нужно перевести в режим загрузчика опцией -j:

wb-mcu-fw-flasher -j -d <порт, на котором находится устройство> -a <modbus адрес устройства> -f <файл с прошивкой устройства.wbfw>

Обновление прошивки, если устройство в режиме загрузчика

Если устройство находится в режиме загрузчика, то дополнительно готовить его не нужно:

wb-mcu-fw-flasher -d <порт, на котором находится устройство> -a <modbus адрес устройства> -f <файл с прошивкой устройства.wbfw>

Полезные ссылки