编程/升级固件
本节提供有关如何更新固件的说明. 我们支持多种方式,例如通过 MSD, WebUSB, Serial-COM, OpenOCD 或 SEGGER J-Link.
注解
在更新过程中保持连接,并使用正确的 装置 和 界面.
更多详细信息,请在下面选择您要使用的方法:
准备设置
至少一个设备.
要更新的二进制文件.
关于如何通过 MSD 进行更新的分步说明
使用 USB-C 数据线将设备的 USB-C Data Port 2 连接到 PC.
连接完成后,LEAPS MSD驱动器会出现在你的PC上. 打开LEAPS MSD驱动器.
下载 LEAPS-UWBS-Firmware-v1.0.0.zip 文件到您的PC. 使用WinZip或7-Zip等程序解压缩下载文件的内容.
找到位于
LEAPS-UWBS-Firmware-v1.0.0/LEAPS-UWBS-Firmware-OpenOCD/udk1-leaps-uwbs-v1.0.0.bin
的二进制文件. 将此文件复制到 LEAPS MSD 驱动器.
等待复制和闪存过程,直到复制成功. 在这个过程中,电路板会自动复位,RGB LED 会亮起,硬件会发出哔哔声,表示更新成功.
设备成功更新了固件. 享受最新的功能和改进.
准备设置
至少一个设备.
要更新的二进制文件.
分步说明如何通过 WebUSB 进行更新
下载并安装 Node.js.
请访问 Node.js 官方网站 https://nodejs.org/en/download.
下载推荐的 Node.js 版本.
运行下载的安装程序,并按照安装提示完成安装.
安装依赖项.
在计算机上打开你喜欢的终端应用程序.
在 linux 或 macOS 上,类似 Terminal 应用程序.
在 Windows 上,类似 Powershell 应用程序.
要安装 webusb 依赖关系,请运行以下命令:
npm install webusb接下来,运行以下命令安装 usb 依赖项:
npm install usb最后,使用以下命令安装 node-hid 依赖关系:
npm install node-hid
使用 USB-C 数据线将设备的 USB-C Data Port 2 连接到 PC.
下载并解压缩软件包到你的电脑. 使用 WinZip 或 7-Zip 等程序解压缩下载的 LEAPS-UWBS-Firmware-v1.0.0.zip 文件.
打开网站 DAPLink Flash .
点击 Choose a firmware image 并转到
LEAPS-UWBS-Firmware-v1.0.0/LEAPS-UWBS-Firmware-OpenOCD/udk1-leaps-uwbs-v1.0.0.hex
选择二进制文件.
点击 SELECT DEVICE 按钮,然后选择连接到 PC 的 DAPLink CMSIS-DAP 端口.
选择固件映像后,二进制文件闪存程序将开始. 在整个过程中,请确保硬件已连接.
注解
可能会出现一些意想不到的问题,请断开电路板与电脑的连接,然后重新开始.
在 Flash completed! 作为过程的一部分,电路板会自动复位,RGB LED 灯会亮起,硬件会发出哔哔声,表示更新成功.
设备成功更新了固件. 享受最新的功能和改进.
您需要:
至少一个通过 USB 端口连接的设备.
软件包中包含的脚本和固件二进制文件.
您系统上安装的 python3.
关于如何通过串口-COM 进行更新的分步说明:
下载并解压缩软件包到你的电脑. 使用 WinZip 或 7-Zip 等程序解压缩下载的 LEAPS-UWBS-Firmware-v1.0.0.zip 文件.
打开你喜欢的终端应用程序.
在 linux 或 macOS 上,类似 Terminal 应用程序.
在 Windows 上,类似 Powershell 应用程序.
导航到包含解压缩软件包的文件夹.
安装 python 依赖项.
$ pip install pyserial libusb tqdm
可以选择使用两个 port 之一进行更新.
如果使用 USB-C Data Port 1 ,你可以独立更新 ELDR 二进制文件和 MAIN 二进制文件. 相反,如果使用 USB-C Data Port 2,则可以同时连续更新多个设备.
使用 USB-C 数据线连接设备的 USB-C Data Port 1.
运行以下命令更新 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
使用 USB-C 数据线连接设备的 USB-C Data Port 2. 运行以下命令更新 ELDR 或 MAIN 二进制文件:
注解
可能需要安装 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
等待更新完成.
更新完成后,板子会自动重置.
设备成功更新了固件. 享受最新的功能和改进.
准备设置
至少一个设备.
一个软件包包括一个脚本和一个二进制文件,用于更新.
已安装 OpenOCD.
逐步说明如何通过 OpenOCD (Open On-Chip Debugger) 进行更新:
安装 OpenOCD 调试器.
在视窗上安装 OpenOCD
下载适用于视窗的二进制压缩文件.
解压缩到
C:\xpack-openocd-0.11.0-1
文件夹.添加路径:
C:\xpack-openocd-0.11.0-1\bin
到你的视窗用户路径环境变量.
在 Linux 或 Mac OS 上安装 OpenOCD.
下载用于 Linux 的二进制压缩包 .
解压缩包并安装到本地.
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
检查 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
下载并解压缩软件包到你的电脑. 使用 WinZip 或 7-Zip 等程序解压缩下载的 LEAPS-UWBS-Firmware-v1.0.0.zip 文件.
打开你喜欢的终端应用程序.
在 linux 或 macOS 上,类似 Terminal 应用程序.
在 Windows 上,类似 Powershell 应用程序.
导航到包含解压缩软件包的文件夹.
cd 转 /path/to/LEAPS-UWBS-Firmware-OpenOCD.
使用 USB-C 数据线将设备的 USB-C Data Port 2 连接到 PC.
执行脚本自动更新固件.
在 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)
更新完成后,设备会发出哔哔声,表示更新成功. 作为更新过程的一部分,电路板会自动复位.
设备成功更新了固件. 享受最新的功能和改进.
故障排除
如果出现 “错误:无法找到控制核心的 MEM-AP”.
请执行以下命令还原:
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 更新的分步说明
安装世纪佳缘 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 文件夹的内容来验证安装.
请注意,每次新安装时,系统文件夹中的现有文件都会被覆盖.
打开SEGGER J-Link,然后闪存二进制文件.
确保安装了最新的 J-Link 软件和文档包.
将J-Link连接到电脑
将目标系统连接到J-Link
启动J-Flash Lite
![]()
选择设备, 调试接口和通信速度
选择文件并点击编程设备或点击擦除芯片
J-Flash Lite执行请求的操作
![]()
确保安装了最新的 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下载,并在成功后打印出时间统计.
更新完成后,电路板会自动复位.
验证固件并确认成功