Перейти к содержанию

Навигация

Bootloader: различия между версиями

(переписал всё)
 
(не показано 5 промежуточных версий этого же участника)
Строка 1: Строка 1:
{{DISPLAYTITLE:Загрузчик периферийных устройств Wiren Board}}
{{DISPLAYTITLE:Загрузчик периферийных устройств Wiren Board}}
== Описание ==
== Описание ==
{{YouTube
|link= https://youtu.be/d_olK15Xhkw
|text= Что такое загрузчик (28:27)
|start=1708
}}
В периферийных устройствах с Modbus есть прошивка, которая реализует заложенную логику работы. Чтобы прошивку можно было обновлять прямо в инсталляции по RS-485, в устройствах предусмотрен загрузчик (bootloader), который отвечает за инициализацию устройства и обновление прошивки.
В периферийных устройствах с Modbus есть прошивка, которая реализует заложенную логику работы. Чтобы прошивку можно было обновлять прямо в инсталляции по RS-485, в устройствах предусмотрен загрузчик (bootloader), который отвечает за инициализацию устройства и обновление прошивки.


Строка 29: Строка 34:
{{Anchor|update}}
{{Anchor|update}}


Текущую версию загрузчика можно узнать, считав 8 holding регистров с адреса 330:
Текущую версию загрузчика можно узнать, считав 8 holding регистров с адреса 330, например, с помощью [[modbus_client]]:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
echo -e $(modbus_client -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t3 -r330 -c8 | grep Data | sed -e 's/.*Data://' -e 's/ 0x00/\\x/g')
echo -e $(modbus_client -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x03 -r330 -c8 | grep Data | sed -e 's/.*Data://' -e 's/ 0x00/\\x/g')
</syntaxhighlight>
</syntaxhighlight>


Строка 67: Строка 72:


Пример:
Пример:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="console">
wb-mcu-fw-updater update-all
# wb-mcu-fw-updater update-all
2024-04-03 07:17:24,061 Will probe all devices on enabled serial ports of /etc/wb-mqtt-serial.conf:
2024-04-03 07:17:24,061 Will probe all devices on enabled serial ports of /etc/wb-mqtt-serial.conf:
2024-04-03 07:17:24,063 Probing WB-MAP6S fw2 (port: /dev/ttyRS485-1, slaveid: 26, uart_params: 9600N2, response_timeout: 0.50)...
2024-04-03 07:17:24,063 Probing WB-MAP6S fw2 (port: /dev/ttyRS485-1, slaveid: 26, uart_params: 9600N2, response_timeout: 0.50)...
Строка 82: Строка 87:


==== Чтение сигнатуры ====
==== Чтение сигнатуры ====
Для начала нам нужно считать сигнатуру устройства, чтобы понимать, какие загрузчик и прошивки нужны:
Для начала нам нужно считать сигнатуру устройства, чтобы понимать, какие загрузчик и прошивки нужны.
 
Сделать это можно прочитав 12 holding регистров с адреса 290, например, с помощью [[modbus_client]]:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
echo -e $(modbus_client -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x03 -r290 -c12 | grep Data | sed -e 's/.*Data://' -e 's/ 0x00/\\x/g')
echo -e $(modbus_client -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x03 -r290 -c12 | grep Data | sed -e 's/.*Data://' -e 's/ 0x00/\\x/g')
Строка 108: Строка 115:


Более подробно про ручное обновление прошивки читайте в статье [[ WB_Modbus_Devices_Firmware_Update#Ручное_обновление | Обновление прошивки Modbus-устройств Wiren Board ]]
Более подробно про ручное обновление прошивки читайте в статье [[ WB_Modbus_Devices_Firmware_Update#Ручное_обновление | Обновление прошивки Modbus-устройств Wiren Board ]]
== Список изменений в загрузчике ==
[[Bootloader_Changelog| Список изменений в загрузчике]]


== Известные ошибки ==
== Известные ошибки ==


[[Bootloader: Errata | Список известных неисправностей]]
[[Bootloader: Errata | Список известных неисправностей]]