编程/升级固件

本节提供有关如何更新固件的说明. 我们支持多种方式,例如通过 MSD, WebUSB, Serial-COM, OpenOCDSEGGER J-Link.

注解

在更新过程中保持连接,并使用正确的 装置界面.

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

准备设置

  • 至少一个设备.

  • 要更新的二进制文件.

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

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

../../../_images/leaps-connect-usb-port2.gif
  1. 连接完成后,LEAPS MSD驱动器会出现在你的PC上. 打开LEAPS MSD驱动器.

例如,在 Windows 上:

../../../_images/msd-win-01.png
  1. 下载 LEAPS-UWBS-Firmware-v1.0.0.zip 文件到您的PC. 使用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 文件.

  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 文件.

  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. 在视窗上安装 OpenOCD

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

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

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

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

  1. 下载用于 Linux 的二进制压缩包 .

  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 文件.

  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 命令.

  • 在视窗 上,使用 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.

准备设置

  • 至少一个设备.

  • 要更新的二进制文件. (.hex 或 .bin)

  • 已安装 SEGGER J-Link.

关于如何通过 SEGGER J-Link 更新的分步说明

  1. 安装世纪佳缘 J-Link.

找到名为 JLink_Windows_V766_x86_64.exe 的视窗下载文件.

  • 双击该文件,启动安装程序.

  • 出现提示时,输入管理密码.

  • 请阅读并接受许可条款.

  • 接受默认的安装目标文件夹,通常位于 C:\Program Files (x86)\SEGGER\JLink

  • 继续接受默认USB驱动程序.

安装完成后,你会发现系统文件夹中安装了一个文件夹和一组驱动程序文件. 请注意,每次新安装时,这些文件都会被覆盖.

找到名为 JLink_MacOSX_V766_x86_64.pkg 的 macOS 下载文件.

  • 双击该文件,启动安装程序.

  • 请阅读并接受许可条款.

  • 根据提示输入管理密码. 在应用程序文件夹中写入内容需要此密码.

安装完成后,你会在以下位置找到一个文件夹:/Applications/SEGGER/JLink_V766/. 请记住,每个版本都会有不同的文件夹. 这个文件夹会储存与应用程序相关的所有可执行文件和程序库.

访问 GNU/Linux 版的 SEGGER 下载站点,并找到所需的软件包. 选择 32/64 位版本.

  • 最好下载.tgz文件,并保存到你的电脑里.

  • 打开终端窗口.

例如,在Ubuntu (Linux)上,要安装64位.tgz文件,请使用以下命令:

mkdir -p ~/opt/SEGGER
cd ~/opt/SEGGER
tar xf ~/Downloads/JLink_Linux_V766_x86_64.tgz
chmod a-w ~/opt/SEGGER/JLink_Linux_V766_x86_64
ls -l ~/opt/SEGGER/JLink_Linux_V766_x86_64

执行上述命令后:

  • 将在`~/opt/SEGGER`创建一个文件夹.

  • 下载的.tgz文件内容将被解压缩到`~/opt/SEGGER`文件夹.

  • JLink_Linux_V766_x86_64 文件的权限将被修改.

  • 可以通过检查 ~/opt/SEGGER/JLink_Linux_V766_x86_64 文件夹的内容来验证安装.

请注意,每次新安装时,系统文件夹中的现有文件都会被覆盖.

  1. 打开SEGGER J-Link,然后闪存二进制文件.

  • 确保安装了最新的 J-Link 软件和文档包.

  • 将J-Link连接到电脑

  • 将目标系统连接到J-Link

  • 启动J-Flash Lite

../../../_images/jflashliteexe01.png
  • 选择设备, 调试接口和通信速度

  • 选择文件并点击编程设备或点击擦除芯片

  • J-Flash Lite执行请求的操作

../../../_images/jflashliteexe02.png
  • 确保安装了最新的 J-Link 软件和文档包.

  • 将J-Link连接到 PC.

  • 将目标系统连接到J-Link

  • 启动 J-Link Commander.

  • 输入以下命令:

  • J-Link> device <devicename> // 有关已知设备的列表,请参阅此处

  • J-Link> r

  • J-Link> h

  • J-Link> loadbin <PathToBinFile>, <programmingaddress>

  • J-Link Commander 执行 flash下载,并在成功后打印出时间统计.

更新完成后,电路板会自动复位.

验证固件并确认成功

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

  • 在 GNU/Linux 或 macOS 上,如 Terminal 应用程序.

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

例如,在 Ubuntu (Linux) 上,打开 minicom 并按下双回车键:

minicom -b 115200 -D /dev/ttyACM0
../../../_images/jflashliteexe05.png