编程/升级固件
本节提供有关如何更新固件的说明. 我们支持多种方式,例如通过 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/udk-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/udk-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 ./udk-leaps-uwbs-serial-com.py --main ./udk-leaps-uwbs-fira-v0.15.0-rc8.bin --eldr ./udk-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 ./udk-leaps-uwbs-serial-com.py -d /dev/ttyACM0 --eldr ./udk-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/udk-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 ./udk-leaps-uwbs-serial-com.py -d /dev/ttyACM0 --main ./udk-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/udk-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(片上开放调试器)进行更新的分步说明
安装 OpenOCD 调试器。
在 Windows 上安装 OpenOCD
下载适用于 Windows 的二进制压缩文件。
解压缩到
C:\xpack-openocd-0.11.0-1
文件夹。添加路径:
C:\xpack-openocd-0.11.0-1\bin
到你的 Windows 用户路径环境变量。
在 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 上,使用 udk-leaps-uwbs-firmware.sh 命令。
在 Windows 上,使用 udk-leaps-uwbs-firmware.bat 命令。
./udk-leaps-uwbs-firmware.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"
然后继续执行 ./udk-leaps-uwbs-firmware.sh
。
准备设置
至少一个设备。
要更新的二进制文件. (.hex 或 .bin)
已安装 SEGGER J-Link。
关于如何通过 SEGGER J-Link 更新的分步说明
安装世纪佳缘 J-Link。
找到名为
JLink_Windows_V766_x86_64.exe
的Windows下载文件。
双击该文件,启动安装程序。
出现提示时,输入管理密码。
请阅读并接受许可条款。
接受默认的安装目标文件夹,通常位于
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下载,并在成功后打印出时间统计。
更新完成后,电路板会自动复位。
验证固件并确认成功