固件更新

本节介绍更新固件的方法. 我们支持多种不同的方式,例如 BluetoothMSDWebUSBSerial-COMOpenOCD.

更多详细信息,请在下面选择您要使用的方法:

准备设置

  • 至少一个设备.

  • 在 Android 设备上安装了 LEAPS 管理器 应用程序.

注解

  • 确保更新过程中的连接,并避免在蓝牙连接时移动太远.

  • 固件更新速度取决于蓝牙设备. 例如,蓝牙 4.2 和蓝牙 5.0 的数据传输速率分别为 1Mbps 和 2Mbps.

逐步说明如何通过蓝牙进行更新:

1.打开 LEAPS 管理器 应用程序,然后导航到 Demo Selector. 此外,你还可以导航到创建的网络,更新网络中的设备.

  1. 访问固件状态. 在应用程序中点击 options menu (代表三个横点). 查找 固件状态 选项并选择它.

    ../../../_images/firmware-update9.jpg ../../../_images/firmware-update10.jpg

  2. 选择要更新的设备.

  • 从显示的设备列表中,选择要更新固件的设备.

  • red: “更新 ”按钮位于应用程序界面的左下角,点击它就可以启动所选设备的固件更新过程.

    ../../../_images/firmware-update8.jpg ../../../_images/firmware-update5.jpg

  1. 应用程序将提供可视化指标或进度条,显示更新的进行情况. 请耐心等待更新过程.

    ../../../_images/firmware-update7.jpg ../../../_images/firmware-update1.jpg

  2. 更新完成后,你会看到 状态已完成. 此外,设备会发出哔哔声,表示更新成功. 更新过程中,电路板会自动复位.

    ../../../_images/firmware-update3.jpg ../../../_images/firmware-update2.jpg

设备成功更新了固件. 享受最新的功能和改进.

准备设置

  • 至少一个设备.

  • 要更新的二进制文件.

关于如何通过 MSD 进行更新的分步说明

  1. 使用 USB-C 数据线将设备的 USB-C Data Port 2 连接到 PC.

../../../_images/leaps-connect-usb-port2.gif
  1. 连接后,LEAPS MSD 驱动器将出现在电脑上. 打开 LEAPS MSD 驱动器.

例如,在 Windows 上:

../../../_images/msd-win-01.png
  1. 下载 LEAPS-UWBS-Firmware-v1.0.0.zip 文件到你的电脑. 使用 WinZip 或 7-Zip 等程序解压缩下载的文件内容.

  2. 找到位于``LEAPS-UWBS-Firmware-v1.0.0/LEAPS-UWBS-Firmware-OpenOCD/udk1-leaps-uwbs-v1.0.0.bin``的二进制文件. 将此文件复制到 LEAPS MSD 驱动器.

例如,在 Windows 上:

../../../_images/msd-win-02.png
  1. 等待复制和闪存过程,直到复制成功. 在这个过程中,电路板会自动复位,RGB LED 会亮起,硬件会发出哔哔声,表示更新成功.

设备成功更新了固件. 享受最新的功能和改进.

准备设置

  • 至少一个设备.

  • 要更新的二进制文件.

分步说明如何通过 WebUSB 进行更新

  1. 下载并安装 Node.js.

  • 请访问 Node.js 官方网站 https://nodejs.org/en/download.

  • 下载推荐的 Node.js 版本.

  • 运行下载的安装程序,并按照安装提示完成安装.

  1. 安装依赖项.

  • 在电脑上打开你喜欢的终端应用程序.

    • 在 linux 或 macOS 上,类似 Terminal 应用程序.

    • 在 Windows 上,类似 Powershell 应用程序.

  • 要安装 webusb 依赖关系,请运行以下命令:

    npm install webusb
    
  • 接下来,运行以下命令安装 usb 依赖项:

    npm install usb
    
  • 最后,使用以下命令安装 node-hid 依赖关系:

    npm install node-hid
    
  1. 使用 USB-C 数据线将设备的 USB-C Data Port 2 连接到 PC.

../../../_images/leaps-connect-usb-port2.gif
  1. 下载并解压缩软件包到你的电脑. 使用 WinZip 或 7-Zip 等程序解压缩下载的 LEAPS-UWBS-Firmware-v1.0.0.zip file.

  2. 打开网站 DAPLink Flash .

../../../_images/daplink-flash-web02.png
  1. 点击 Choose a firmware image 并转到 LEAPS-UWBS-Firmware-v1.0.0/LEAPS-UWBS-Firmware-OpenOCD/udk1-leaps-uwbs-v1.0.0.hex 选择二进制文件.

../../../_images/daplink-flash-web03.png
  1. 点击 SELECT DEVICE 按钮,然后选择连接到 PC 的 DAPLink CMSIS-DAP 端口.

../../../_images/daplink-flash-web05.png
  1. 选择固件映像后,二进制文件闪存程序将开始. 在整个过程中,请确保硬件连接正常.

../../../_images/daplink-flash-web06.png

注解

可能会出现一些意外问题,请断开电路板与电脑的连接,然后重新开始.

  1. 在发出 Flash completed! (“刷新完成”) 之后. 电路板会自动复位,RGB LED 灯会亮起,硬件会发出哔哔声,表示更新成功.

../../../_images/daplink-flash-web07.png

设备成功更新了固件. 享受最新的功能和改进.

您需要:

  • 至少一个通过 USB 端口连接的设备.

  • 软件包中包含的脚本和固件二进制文件.

  • 您系统上安装的 python3.

分步说明如何通过串行-COM 进行更新:

  1. 下载并解压缩软件包到你的电脑. 使用 WinZip 或 7-Zip 等程序解压缩下载的 LEAPS-UWBS-Firmware-v1.0.0.zip file.

  2. 打开你喜欢的终端应用程序.

  • 在 linux 或 macOS 上,类似 Terminal 应用程序.

  • 在 Windows 上,类似 Powershell 应用程序.

  1. 导航到包含解压缩软件包的文件夹.

  2. 安装 python 依赖项.

$ pip install pyserial libusb tqdm
  1. 可以选择使用两个 port 之一进行更新.

如果使用 USB-C Data Port 1 ,你可以独立更新 ELDR 二进制文件和 MAIN 二进制文件. 相反,如果使用 USB-C Data Port 2,则可以同时连续更新多个设备.

  1. 使用 USB-C 数据线连接设备的 USB-C Data Port 1.

    ../../../_images/leaps-connect-usb-port1.gif

    运行以下命令更新 ELDR 和 MAIN 二进制文件.

    ~/LEAPS-UWBS-Firmware-Serial-COM$ sudo python3 ./udk1-leaps-uwbs-serial-com.py --main ./udk1-leaps-uwbs-fira-v0.15.0-rc8.bin --eldr ./udk1-leaps-uwbs-eldr-v0.15.0-rc8.bin
    03:11:55 Device 01/02 (SerialNumber=3DB15A2CCB8053C8): Reset
    03:11:55 Device 02/02 (SerialNumber=904AD29FD29D2452): Reset
    15:12:15 Device 01/02 (SerialNumber=904AD29FD29D2452): Uploading MAIN: 100%|████████████████████████████| 716192/716192 [00:16<00:00, 44623.94it/s]
    15:12:15 Device 02/02 (SerialNumber=3DB15A2CCB8053C8): Uploading MAIN: 100%|████████████████████████████| 716192/716192 [00:16<00:00, 44630.31it/s]
    15:12:37 Device 01/02 (SerialNumber=904AD29FD29D2452): Uploading ELDR: 100%|████████████████████████████| 235748/235748 [00:05<00:00, 42419.44it/s]
    15:12:37 Device 02/02 (SerialNumber=3DB15A2CCB8053C8): Uploading ELDR: 100%|████████████████████████████| 235748/235748 [00:05<00:00, 42498.01it/s]
    03:12:43 Resetting devices
    
  2. 使用 USB-C 数据线连接设备的 USB-C Data Port 2. 运行以下命令更新 ELDR 或 MAIN 二进制文件:

    ../../../_images/leaps-connect-usb-port2.gif

    注解

    可能需要安装 udev 规则才能通过 USB-C Data Port 2 更新固件. 可以参考类 Debian 发行版的 udev 规则安装.

    ~/LEAPS-UWBS-Firmware-Serial-COM$ python3 ./udk1-leaps-uwbs-serial-com.py -d /dev/ttyACM0 --eldr ./udk1-leaps-uwbs-eldr-v0.15.0-rc8.bin
    02:54:30 Resetting device
    02:54:33 Uploading file /home/leaps/LEAPS-UWBS-Firmware-v0.15.0/LEAPS-UWBS-Firmware-Serial-COM/udk1-leaps-uwbs-eldr-v0.15.0-rc8.bin (235748 bytes)
    100%|████████████████████████████| 235748/235748 [00:28<00:00, 8129.43it/s]
    02:55:07 Ok (upload time = 34.70 seconds)
    02:55:10 Resetting device
    
    ~/LEAPS-UWBS-Firmware-Serial-COM$ python3 ./udk1-leaps-uwbs-serial-com.py -d /dev/ttyACM0 --main ./udk1-leaps-uwbs-fira-v0.15.0-rc8.bin
    02:56:25 Resetting device
    02:56:28 Uploading file /home/leaps/LEAPS-UWBS-Firmware-v0.15.0/LEAPS-UWBS-Firmware-Serial-COM/udk1-leaps-uwbs-fira-v0.15.0-rc8.bin (716192 bytes)
    100%|████████████████████████████| 716192/716192 [01:27<00:00, 8175.81it/s]
    02:58:11 Ok (upload time = 102.74 seconds)
    02:58:14 Resetting device
    
  1. 等待更新完成.

  2. 更新完成后,板子会自动重置.

设备成功更新了固件. 享受最新的功能和改进.

准备设置

  • 至少一个设备.

  • 一个软件包包含一个脚本和一个二进制文件,用于更新.

  • 已安装 OpenOCD.

逐步说明如何通过 OpenOCD (Open On-Chip Debugger) 进行更新:

  1. 安装 OpenOCD 调试器.

  1. 在 Windows 上安装 OpenOCD

  1. 下载适用于 Windows 的二进制压缩文件.

  2. 解压缩到 C:\xpack-openocd-0.11.0-1 文件夹.

  3. 添加路径: C:\xpack-openocd-0.11.0-1\bin 到你的 Windows 用户路径环境变量.

  1. 在 Linux 或 Mac OS 上安装 OpenOCD.

  1. 下载用于 Linux 的二进制压缩包 <https://github.com/xpack-dev-tools/openocd-xpack/releases>`_ .

  2. 解压缩包并安装到本地.

mkdir -p ~/.local/xPacks/openocd
cd ~/.local/xPacks/openocd
tar -zxvf ~/Downloads/xpack-openocd-0.11.0-1-linux-arm.tar.gz (with PC’s AMD core, using … linux-x64.tar.gz with PC’s Intel core)
....
sudo chmod -R -w xpack-openocd-0.11.0-1/
~/.local/xPacks/openocd/xpack-openocd-0.11.0-1/bin/openocd --version
export PATH="~/.local/xPacks/openocd/xpack-openocd-0.11.0-1/bin/:$PATH"
cd ~
source .bashrc
  1. 检查 OpenOCD 版本.

openocd --version
xPack OpenOCD, x86_64 Open On-Chip Debugger 0.11.0-00155-ge392e485e (2021-03-15-16:43)
Licensed under GNU GPL v2
For bug reports, read
  http://openocd.org/doc/doxygen/bugs.html
  1. 下载并解压缩软件包到你的电脑. 使用 WinZip 或 7-Zip 等程序解压缩下载的 LEAPS-UWBS-Firmware-v1.0.0.zip file.

  2. 打开你喜欢的终端应用程序.

  • 在 linux 或 macOS 上,类似 Terminal 应用程序.

  • 在 Windows 上,类似 Powershell 应用程序.

  1. 导航到包含解压缩软件包的文件夹.

  • cd/path/to/LEAPS-UWBS-Firmware-OpenOCD.

  1. 使用 USB-C 数据线将 USB-C Data Port 2 的设备连接到 PC.

../../../_images/leaps-connect-usb-port2.gif
  1. 执行脚本自动更新固件.

  • 在 linux 或 macOS 上,使用 reflash-leaps-rtls-2ab.sh 命令.

  • 在 Windows 上,使用 reflash-leaps-rtls-2ab.bat 命令.

./reflash-leaps-rtls-2ab.sh
xPack OpenOCD, x86_64 Open On-Chip Debugger 0.11.0-00155-ge392e485e (2021-03-15-16:43)
Licensed under GNU GPL v2
For bug reports, read
  http://openocd.org/doc/doxygen/bugs.html
DEPRECATED! use 'adapter speed' not 'adapter_khz'
set_test_mode
Info : Using CMSIS-DAPv2 interface with VID:PID=0x0d28:0x0204, serial=01100E003602002e003f4146570120313238
Info : CMSIS-DAP: SWD Supported
Info : CMSIS-DAP: FW Version = 2.1.0
Info : CMSIS-DAP: Serial# = 01100E003602002e003f4146570120313238
Info : CMSIS-DAP: Interface Initialised (SWD)
Info : SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1
Info : CMSIS-DAP: Interface ready
Info : High speed (adapter speed 10000) may be limited by adapter firmware.
Info : clock speed 10000 kHz
Info : SWD DPIDR 0x2ba01477
Info : nrf52.cpu: hardware has 6 breakpoints, 4 watchpoints
Info : starting gdb server for nrf52.cpu on 3333
Info : Listening on port 3333 for gdb connections
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x000031ec msp: 0x20003488
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc
Info : nRF52840-CKAA(build code: D0) 1024kB Flash, 256kB RAM
auto erase enabled
wrote 1048576 bytes from file leaps-rtls-all-2ab-v0.14-rc25.hex in 38.776192s (26.408 KiB/s)
  1. 更新完成后,设备会发出哔哔声,表示更新成功. 作为更新过程的一部分,电路板会自动复位.

设备成功更新了固件. 享受最新的功能和改进.

故障排除

如果出现 “错误:无法找到控制核心的 MEM-AP”.

../../../_images/firmware-update-error.png

请执行以下命令还原:

openocd -f ./openocd-swd-nrf52.cfg -c "init;nrf52833_workaround;exit_debug_mode;shutdown;sleep 250"

然后继续执行``./reflash-leaps-rtls-2ab.sh``.

注解