从 SDK 开始
注解
请注意,第三方应用程序的开发不在 UDK1 的服务范围内,因此不属于预付费 UDK1 支持的一部分.
本节为选择和启动 LEAPS 示例项目提供全面指导,这些示例项目专为 Zephyr 实时操作系统平台设计. 这些示例有助于加深对 UWB(超宽带)技术 和 UDK1 工具包的 硬件接口 的理解.
有了这些知识,用户就可以放心地在 UDK1 套件上开发自定义应用程序.
指导遵循以下步骤:
在Linux, macOS或Windows上为 Zephyr 实时操作系统设置开发环境.
获取UDK1的SDK,它是基于 Zephyr 的示例应用程序包.
将设备连接到主机和所需的工具.
选择示例, 构建, 闪存并运行一个示例程序.
Zephyr 入门指南
按照本指南进行操作:
在 Ubuntu, macOS 或 Windows 上设置命令行 Zephyr 开发环境(有关其他 Linux 发行版的说明,请参阅 installation_linux).
安装Zephyr的SDK软件包(包括所需的工具链)
选择并更新操作系统
点击你正在使用的操作系统.
本指南涵盖 Ubuntu 20.04 LTS 及更高版本.
sudo apt update
sudo apt upgrade
在macOS Mojave或更新版本中,选择*系统偏好设置* >*软件更新*. 如有必要,点击*立即更新*.
关于其他版本,请参阅`此Apple支持主题<https://support.apple.com/en-us/HT201541>`_
选择 启动 > 设置 > 更新与安全 > 视窗更新. 点击 检查更新 并安装任何可用的更新.
安装依赖项
接下来,你将使用软件包管理器安装一些主机依赖包.
当前主要依赖项所需的最低版本是:
工具 |
最小. 版本 |
---|---|
3.20.5 |
|
3.10 |
|
1.4.6 |
如果使用的Ubuntu版本早于22.04,则有必要添加额外的软件源,以满足上述主要依赖项的最低版本要求. 在这种情况下,请下载, 检查并执行 Kitware 存档脚本,将 Kitware APT 仓库添加到源代码列表中. 关于
kitware-archive.sh
的详细解释,请参阅 kitware第三方apt仓库:wget https://apt.kitware.com/kitware-archive.sh sudo bash kitware-archive.sh
使用
apt
安装所需的依赖项:sudo apt install --no-install-recommends git cmake ninja-build gperf \ ccache dfu-util device-tree-compiler wget minicom \ python3-dev python3-pip python3-setuptools python3-tk python3-wheel xz-utils file \ make gcc gcc-multilib g++-multilib libsdl2-dev libmagic1
输入验证系统上安装的主要依赖版本:
cmake --version python3 --version dtc --version
与本节开头的表格中的版本进行核对. 请参阅 installation_linux 页面,了解手动更新依赖项的更多信息.
安装 Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
在 Homebrew 安装脚本完成后,按照屏幕上的指示,将 Homebrew 安装程序添加到路径中.
在苹果硅上运行的 macOS 上,可以通过以下方法实现:
(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> ~/.zprofile source ~/.zprofile
在 Intel 上运行的 macOS,使用 Apple Silicon 的命令,但将
/opt/homebrew/
替换为/usr/local/
.
使用
brew
安装所需的依赖项:brew install cmake ninja gperf python3 ccache qemu dtc libmagic wget openocd minicom
在路径中添加 Homebrew Python 文件夹,以便能够执行
python` 和 ``pip
以及python3
和pip3
.(echo; echo 'export PATH="'$(brew --prefix)'/opt/python/libexec/bin:$PATH"') >> ~/.zprofile source ~/.zprofile
注解
由于寻找可执行文件的问题,Zephyr 项目目前不支持使用`Windows Subsystem for Linux(WSL)<https://msdn.microsoft.com/en-us/commandline/wsl/install_guide>`_(WSL)闪存应用程序.
因此,我们不建议在入门时使用 WSL.
这些说明必须在 cmd.exe
命令提示符终端窗口中运行. 在现代版本的 Windows 中(10 及更高版本),建议从微软商店安装 Windows 终端应用程序. PowerShell 所需的指令有所不同.
These instructions rely on Chocolatey. If Chocolatey isn’t an option, you can install dependencies from their respective websites and ensure the command line tools are on your PATH environment variable.
以**管理员**身份打开
cmd.exe
终端窗口. 为此,按下窗户键,输入cmd.exe
,右键单击:guilabel: 命令提示符 搜索结果,并选择:guilabel:Run as管理员.禁用全局确认,以避免必须确认单个程序的安装:
choco feature enable -n allowGlobalConfirmation
使用
choco
安装所需的依赖项:choco install cmake --installargs 'ADD_CMAKE_TO_PATH=System' choco install ninja gperf python311 git dtc-msys2 wget 7zip unzip
警告
截至2023年11月,不建议将Python 3.12用于Windows上的Zephyr开发,因为一些必需的Python依赖项可能难以安装.
关闭终端窗口.
安装West
West 是 Zephyr 的瑞士军刀命令行工具,要安装它,请执行以下命令:
使用
apt
安装Pythonvenv
包:sudo apt install python3-venv
创建新的虚拟环境:
python3 -m venv ~/udk1-sdk/.venv
激活虚拟环境:
source ~/udk1-sdk/.venv/bin/activate
激活后,您的shell将以``(.venv)``作为前缀. 通过运行``deactivate``,可以随时停用虚拟环境.
注解
每次开始工作时,记得激活虚拟环境.
安装west
pip install west
创建新的虚拟环境:
python3 -m venv ~/udk1-sdk/.venv
激活虚拟环境:
source ~/udk1-sdk/.venv/bin/activate
激活后,您的shell将以``(.venv)``作为前缀. 通过运行``deactivate``,可以随时停用虚拟环境.
注解
每次开始工作时,记得激活虚拟环境.
安装west
pip install west
安装west
pip3 install -U west
以普通用户身份打开 “cmd.exe ”终端窗口**
创建新的虚拟环境:
cd %HOMEPATH% python -m venv udk1-sdk\.venv
激活虚拟环境:
udk1-sdk\.venv\Scripts\activate.bat
激活后,您的shell将以``(.venv)``作为前缀. 通过运行``deactivate``,可以随时停用虚拟环境.
注解
每次开始工作时,记得激活虚拟环境.
安装west
pip install west
以普通用户身份打开 “cmd.exe ”终端窗口**
安装west
pip3 install -U west
安装 Zephyr SDK
注解
如果你想卸载 SDK,你可以直接移除安装它的目录.
下载并验证 Zephyr SDK bundle:
cd ~ wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.14.2/zephyr-sdk-0.14.2_linux-x86_64.tar.gz wget -O - https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.14.2/sha256.sum | shasum --check --ignore-missing
如果你的主机架构是 64 位 ARM (例如 Raspberry Pi),请将
x86_64
替换为aarch64
以下载 64 位 ARM Linux SDK.解压缩 Zephyr SDK 捆绑包:
tar xvf zephyr-sdk-0.14.2_linux-x86_64.tar.gz
注解
建议在下列其中一个位置解压缩 Zephyr SDK 套件:
$HOME
$HOME/.local
$HOME/.local/opt
$HOME/bin
/opt
/usr/local
Zephyr SDK 捆绑包中包含
zephyr-sdk-<version>
目录,在$HOME
下解压缩后,安装路径为$HOME/zephyr-sdk-<version>
.运行 Zephyr SDK bundle 安装脚本:
cd zephyr-sdk-0.14.2 ./setup.sh
注解
在解压缩 Zephyr SDK 软件包后,您只需要运行一次设置脚本.
如果您在初始设置后重新定位Zephyr SDK bundle目录,您必须重新运行设置脚本.
安装 udev 规则,它允许你以普通用户的身份闪存大多数 Zephyr 主板:
sudo cp ~/zephyr-sdk-0.14.2/sysroots/x86_64-pokysdk-linux/usr/share/openocd/contrib/60-openocd.rules /etc/udev/rules.d sudo udevadm control --reload
下载并验证 Zephyr SDK bundle:
cd ~ curl -L -O https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.14.2/zephyr-sdk-0.14.2_macos-x86_64.tar.gz curl -L https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.14.2/sha256.sum | shasum --check --ignore-missing
如果您的主机架构是 64 位 ARM (Apple Silicon,也称为 M1),请将
x86_64
替换为aarch64
,以便下载 64 位 ARM macOS SDK.解压缩 Zephyr SDK 捆绑包:
tar xvf zephyr-sdk-0.14.2_macos-x86_64.tar.gz
注解
建议在下列其中一个位置解压缩 Zephyr SDK 套件:
$HOME
$HOME/.local
$HOME/.local/opt
$HOME/bin
/opt
/usr/local
Zephyr SDK 捆绑包中包含
zephyr-sdk-<version>
目录,在$HOME
下解压缩后,安装路径为$HOME/zephyr-sdk-<version>
.运行 Zephyr SDK bundle 安装脚本:
cd zephyr-sdk-0.14.2 ./setup.sh
注解
在解压缩 Zephyr SDK 软件包后,您只需要运行一次设置脚本.
如果您在初始设置后重新定位Zephyr SDK bundle目录,您必须重新运行设置脚本.
以普通用户身份打开 “cmd.exe ”终端窗口**
-
cd %HOMEPATH% wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.14.2/zephyr-sdk-0.14.2_windows-x86_64.zip
解压缩 Zephyr SDK 捆绑包:
unzip zephyr-sdk-0.14.2_windows-x86_64.zip
注解
建议在下列其中一个位置解压缩 Zephyr SDK 套件:
%HOMEPATH%
.%PROGRAMFILES%
.
Zephyr SDK 捆绑包中包含
zephyr-sdk-<version>
目录,在%HOMEPATH%
下解压缩时,生成的安装路径将是%HOMEPATH%\zephyr-sdk-<version>
.运行 Zephyr SDK bundle 安装脚本:
cd zephyr-sdk-0.14.2 setup.cmd
注解
在解压缩 Zephyr SDK 软件包后,您只需要运行一次设置脚本.
如果您在初始设置后重新定位Zephyr SDK bundle目录,您必须重新运行设置脚本.
安装 UDK1-SDK 软件包
注解
UDK1 SDK 也是一个基于 Zephyr 的示例应用程序. 若要深入了解,请参阅此 示例应用程式 页面.
小心
我们将很快提供已发布的 udk1-sdk资源库
. 请继续关注!
第一步是初始化工作区文件夹 udk1-sdk
,leaps-udk1-examples
和所有 Zephyr 模块都会被克隆到这里. 请遵循以下说明
打开终端
使用主版本初始化 leaps-udk1-examples 的 udk1-sdk 工作区.
west init -m <udk1-sdk repository> --mr main udk1-sdk克隆 Zephyr 源代码(版本 3.1.0)及其模块.
cd udk1-sdk west update导出一个 Zephyr CMake软件包. 这将允许CMake自动加载构建 Zephyr 应用程序所需的模板代码.
west zephyr-exportZephyr 的scripts/requirements.txt文件声明了额外的Python依赖项. 使用pip安装它们.
pip install -r ./zephyr/scripts/requirements.txt设置 $ZEPHYR_BASE 环境.
source zephyr/zephyr-env.sh
打开终端
使用主版本初始化 leaps-udk1-examples 的 udk1-sdk 工作区.
west init -m <udk1-sdk repository> --mr main udk1-sdk小心
我们将很快提供已发布的
udk1-sdk资源库
. 请继续关注!克隆 Zephyr 源代码(版本 3.1.0)及其模块.
cd udk1-sdk west update导出一个 Zephyr CMake软件包. 这将允许CMake自动加载构建 Zephyr 应用程序所需的模板代码.
west zephyr-exportZephyr 的scripts/requirements.txt文件声明了额外的Python依赖项. 使用pip安装它们.
pip install -r ./zephyr/scripts/requirements.txt设置 $ZEPHYR_BASE 环境.
source zephyr/zephyr-env.sh
以普通用户身份打开``cmd.exe``终端窗口
使用主版本初始化 leaps-udk1-examples 的 udk1-sdk 工作区.
west init -m <udk1-sdk repository> --mr main udk1-sdk克隆 Zephyr 源代码(版本 3.1.0)及其模块.
cd udk1-sdk west update导出一个 Zephyr CMake软件包. 这将允许CMake自动加载构建 Zephyr 应用程序所需的模板代码.
west zephyr-exportZephyr 的scripts/requirements.txt文件声明了额外的Python依赖项. 使用pip安装它们.
pip install -r zephyr/scripts/requirements.txt设置 $ZEPHYR_BASE 环境.
cd zephyr zephyr-env.cmd
设备设置
在执行范例程序之前,请确保设备已经连接,并按照以下步骤打开控制台窗口:
使用 USB-C 数据线将设备的 USB-C Data Port 2 连接到主机 PC.
参考 编程/升级固件 部分的 OpenOCD 选项卡,安装 OpenOCD 工具. 本节还包括闪存固件的其他解决方案.
执行以下命令,打开minicom (Linux和macOs)或 Tera Term (Windows) 访问已连接的串口,并准备好查看示例中打印的信息.
打开终端
使用ttyACM<X>执行下面的命令(0是第一个连接设备的默认端口)
minicom -b 115200 -D /dev/ttyACM0
注解
请使用以下命令验证所有连接的设备(ttyACM<X>),您打算重新刷新这些设备
ls ../../dev/
成功连接设备后
Welcome to minicom 2.8 OPTIONS: I18n Port /dev/ttyACM0, 04:49:57 Press CTRL-A Z for help on special keys
打开终端
使用/dev/tty.usb<xxx>执行以下命令(以modem1410为例)
minicom -b 115200 -D /dev/tty.usbmodem1410
注解
请使用以下命令验证您打算重新刷新的连接设备 (tty.usb<xxx>)
ls ../../dev/
成功连接设备后
Welcome to minicom 2.8 OPTIONS: Compiled on Jan 4 2021, 00:04:46. Port /dev/tty.usbmodem1410, 19:42:45 Press Meta-Z for help on special keys
打开 Tera Term 工具
转到设置>串行端口
![]()
选择设备的连接端口 (例如:端口5正在连接设备)
![]()
选择速度为 115200
![]()
选择关闭和新打开(或新打开)
协调示例执行
在 UDK1-SDK 软件包的 @yourdir/udk1-sdk/leaps-udk1-examples/app/006_ex_uwb 位置,提供了各种范例. 要实现协作式超宽带操作,需要如下表所示,将两个示例配对使用.
实例1 |
实例2 |
---|---|
ex_01a_simple_tx/simple_tx.c |
ex_02a_simple_rx/simple_rx.c |
ex_01b_tx_sleep/tx_sleep_idleRC.c |
ex_02a_simple_rx/simple_rx.c |
ex_01b_tx_sleep/tx_sleep.c |
ex_02a_simple_rx/simple_rx.c |
ex_01c_tx_sleep_auto/tx_sleep_auto.c |
ex_02a_simple_rx/simple_rx.c |
ex_01d_tx_timed_sleep/tx_timed_sleep.c |
ex_02a_simple_rx/simple_rx.c |
ex_01e_tx_with_cca/tx_with_cca.c |
ex_02a_simple_rx/simple_rx.c |
ex_01g_simple_tx_sts_sdc/simple_tx_sts_sdc.c |
ex_02g_simple_rx_sts_sdc/simple_rx_sts_sdc.c |
ex_01h_simple_tx_pdoa/simple_tx_pdoa.c |
ex_02h_simple_rx_pdoa/simple_rx_pdoa.c |
ex_01i_simple_tx_aes/simple_tx_aes.c |
ex_02i_simple_rx_aes/simple_rx_aes.c |
ex_02a_simple_rx/simple_rx_nlos.c |
ex_01a_simple_tx/simple_tx.c |
ex_02c_rx_diagnostics/rx_diagnostics.c |
ex_01a_simple_tx/simple_tx.c |
ex_02d_rx_sniff/rx_sniff.c |
ex_01a_simple_tx/simple_tx.c |
ex_02e_rx_dbl_buff/double_buffer_rx.c |
ex_01a_simple_tx/simple_tx.c |
ex_02f_rx_with_crystal_trim/rx_with_xtal_trim.c |
ex_01a_simple_tx/simple_tx.c |
ex_03a_tx_wait_resp/tx_wait_resp.c |
ex_03b_rx_send_resp/rx_send_resp.c |
ex_03d_tx_wait_resp_interrupts/tx_wait_resp_int.c |
ex_03b_rx_send_resp/rx_send_resp.c |
ex_05a_ds_twr_init/ds_twr_initiator.c |
ex_05b_ds_twr_resp/ds_twr_responder.c |
ex_05a_ds_twr_init/ds_twr_initiator_sts.c |
ex_05b_ds_twr_resp/ds_twr_responder_sts.c |
ex_05c_ds_twr_init_sts_sdc/ds_twr_sts_sdc_initiator.c |
ex_05d_ds_twr_resp_sts_sdc/ds_twr_sts_sdc_responder.c |
ex_06a_ss_twr_initiator/ss_twr_initiator_sts_no_data.c |
ex_06b_ss_twr_responder/ss_twr_responder_sts_no_data.c |
ex_06a_ss_twr_initiator/ss_twr_initiator_sts.c |
ex_06b_ss_twr_responder/ss_twr_responder_sts.c |
ex_06a_ss_twr_initiator/ss_twr_initiator.c |
ex_06b_ss_twr_responder/ss_twr_responder.c |
ex_06e_AES_ss_twr_initiator/ss_aes_twr_initiator.c |
ex_06f_AES_ss_twr_responder/ss_aes_twr_responder.c |
ex_07a_ack_data_tx/ack_data_tx.c |
ex_07b_ack_data_rx/ack_data_rx.c |
ex_15_le_pend/le_pend_rx.c |
ex_15_le_pend/le_pend_tx.c |
有关详细说明,请参阅每个示例的源文件*.c文件中提供的说明.
例如: ex_01h_simple_tx_pdoa/simple_tx_pdoa.c
* @file simple_tx_pdoa.c
* @brief Simple TX PDOA example code, companion to Simple RX PDOA example.
* See note 7 regarding information on calibrating the system
构建并运行示例
本节将指导您如何构建和重新刷新软件.
确保完整的 设备设置 指南.
进入示例目录
cd leaps-udk1-examples
(可选) 清理旧的联编目录
rm -rf build/
建立范例
本节将指导你如何通过选择一个预期的示例来构建示例.
当 $BOARD 为 leaps_lc14 或 leaps_lc13 时,执行以下命令来显示菜单
west build -t menuconfig -b $BOARD -s app
选择 示例应用程序,然后按 Enter
![]()
你将看到默认的**示例**,如果你想选择其他示例,请按回车键
![]()
向上或向下滚动,选择**示例**,然后按回车键
![]()
按 ESC 和 Y 保存选择
![]()
建立范例
west build
成功建立范例
[169/179] Linking C executable zephyr/zephyr_pre0.elf [173/179] Linking C executable zephyr/zephyr_pre1.elf [179/179] Linking C executable zephyr/zephyr.elf Memory region Used Size Region Size %age Used FLASH: 31268 B 1 MB 2.98% SRAM: 8568 B 256 KB 3.27% IDT_LIST: 0 GB 2 KB 0.00%本节将指导您如何使用默认示例构建示例.
执行以下命令,$BOARD 为 leaps_lc14 或 leaps_lc13
west build -b $BOARD -s app
成功建立范例
[169/179] Linking C executable zephyr/zephyr_pre0.elf [173/179] Linking C executable zephyr/zephyr_pre1.elf [179/179] Linking C executable zephyr/zephyr.elf Memory region Used Size Region Size %age Used FLASH: 31268 B 1 MB 2.98% SRAM: 8568 B 256 KB 3.27% IDT_LIST: 0 GB 2 KB 0.00%然后将十六进制文件重新刷新到设备上:
west flash
成功,重新刷新固件
Open On-Chip Debugger 0.11.0+dev-00245-gaf169e805 (2022-05-14-14:24) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html DEPRECATED! use 'adapter speed' not 'adapter_khz' exit_debug_mode Info : Using CMSIS-DAPv2 interface with VID:PID=0x0d28:0x0204, serial=01100E003602002e00354146570120313238 Info : CMSIS-DAP: SWD Supported Info : CMSIS-DAP: FW Version = 2.1.0 Info : CMSIS-DAP: Serial# = 01100E003602002e00354146570120313238 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 : 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 TargetName Type Endian TapName State -- ------------------ ---------- ------ ------------------ ------------ 0* nrf52.cpu cortex_m little nrf52.cpu running target halted due to debug-request, current mode: Thread xPSR: 0x01000000 pc: 0x0000243c msp: 0x20001838 Info : nRF52840-CKAA(build code: D0) 1024kB Flash, 256kB RAM Warn : Adding extra erase range, 0x00007a24 .. 0x00007fff auto erase enabled wrote 31268 bytes from file @/udk1-sdk/zephyr/zephyr.hex in 1.151423s (26.519 KiB/s) target halted due to debug-request, current mode: Thread xPSR: 0x01000000 pc: 0x0000243c msp: 0x20001838 verified 31268 bytes in 0.092640s (329.611 KiB/s)分别按下C, B和A按钮运行TEST_BUTTONS示例时的输出.
*** Booting Zephyr OS build 5db7528340ec *** PRESS BUTTON EXAMPLE Button C is pressed at 24778 Button C is released at 28996 Button B is pressed at 76012 Button B is released at 81454 Button A is pressed at 104172 Button A is released at 109917
确保完整的 设备设置 指南.
进入示例目录
cd leaps-udk1-examples
(可选) 清理旧的联编目录
rm -rf build/
建立范例
本节将指导您如何通过选择一个预期示例来构建示例.
当 $BOARD 为 leaps_lc14 或 leaps_lc13 时,执行以下命令来显示菜单
west build -t menuconfig -b $BOARD -s app
选择 示例应用程序,然后按 Enter
你将看到默认的**示例**,如果你想选择其他示例,请按回车键
通过向上/向下滚动选择**示例**,然后按 Enter
按 ESC 和 Y 保存选择
建立范例
west build
成功建立范例
[169/179] Linking C executable zephyr/zephyr_pre0.elf [173/179] Linking C executable zephyr/zephyr_pre1.elf [179/179] Linking C executable zephyr/zephyr.elf Memory region Used Size Region Size %age Used FLASH: 31268 B 1 MB 2.98% SRAM: 8568 B 256 KB 3.27% IDT_LIST: 0 GB 2 KB 0.00%本节将指导您如何使用默认示例构建示例.
执行以下命令,$BOARD 为 leaps_lc14 或 leaps_lc13
west build -b $BOARD
成功建立范例
[169/179] Linking C executable zephyr/zephyr_pre0.elf [173/179] Linking C executable zephyr/zephyr_pre1.elf [179/179] Linking C executable zephyr/zephyr.elf Memory region Used Size Region Size %age Used FLASH: 31268 B 1 MB 2.98% SRAM: 8568 B 256 KB 3.27% IDT_LIST: 0 GB 2 KB 0.00%然后将十六进制文件重新刷新到设备上:
west flash
成功,重新刷新固件
Open On-Chip Debugger 0.11.0+dev-00245-gaf169e805 (2022-05-14-14:24) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html DEPRECATED! use 'adapter speed' not 'adapter_khz' exit_debug_mode Info : Using CMSIS-DAPv2 interface with VID:PID=0x0d28:0x0204, serial=01100E003602002e00354146570120313238 Info : CMSIS-DAP: SWD Supported Info : CMSIS-DAP: FW Version = 2.1.0 Info : CMSIS-DAP: Serial# = 01100E003602002e00354146570120313238 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 : 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 TargetName Type Endian TapName State -- ------------------ ---------- ------ ------------------ ------------ 0* nrf52.cpu cortex_m little nrf52.cpu running target halted due to debug-request, current mode: Thread xPSR: 0x01000000 pc: 0x0000243c msp: 0x20001838 Info : nRF52840-CKAA(build code: D0) 1024kB Flash, 256kB RAM Warn : Adding extra erase range, 0x00007a24 .. 0x00007fff auto erase enabled wrote 31268 bytes from file @/udk1-sdk/zephyr/zephyr.hex in 1.151423s (26.519 KiB/s) target halted due to debug-request, current mode: Thread xPSR: 0x01000000 pc: 0x0000243c msp: 0x20001838 verified 31268 bytes in 0.092640s (329.611 KiB/s)分别按下C, B和A按钮运行TEST_BUTTONS示例时的输出.
*** Booting Zephyr OS build 5db7528340ec *** PRESS BUTTON EXAMPLE Button C is pressed at 24778 Button C is released at 28996 Button B is pressed at 76012 Button B is released at 81454 Button A is pressed at 104172 Button A is released at 109917
确保完整的 设备设置 指南.
进入示例目录
cd leaps-udk1-examples
(可选)清理旧的联编目录,然后按 Y
rd /s build
建立范例
本节将指导你如何通过选择一个预期的示例来构建示例.
当 $BOARD 为 leaps_lc14 或 leaps_lc13 时,执行以下命令来显示菜单
west build -t menuconfig -b $BOARD -s app
选择 示例应用程序,然后按 Enter
你将看到默认的**示例**,如果你想选择其他示例,请按回车键
向上或向下滚动,选择**示例**,然后按回车键
按 ESC 和 Y 保存选择
建立范例
west build
成功建立范例
[152/158] Linking C executable zephyr\zephyr_pre1.elf←[K1.dir/dev_handles.c.obj←[Kj←[K [158/158] Linking C executable zephyr\zephyr.elf←[Kr_final.dir/dev_handles.c.obj←[Kj←[K Memory region Used Size Region Size %age Used FLASH: 32668 B 1 MB 3.12% SRAM: 4496 B 248 KB 1.77% IDT_LIST: 0 GB 2 KB 0.00%本节将指导您如何使用默认示例构建示例.
执行以下命令,$BOARD 为 leaps_lc14 或 leaps_lc13
west build -b $BOARD -s app
成功建立范例
[1/161] Generating include/generated/version.h -- Zephyr version: 3.1.0 (@/udk1-sdk/zephyr), build: zephyr-v3.1.0 [151/161] Linking C executable zephyr\zephyr_pre0.elf [155/161] Linking C executable zephyr\zephyr_pre1.elf [161/161] Linking C executable zephyr\zephyr.elf Memory region Used Size Region Size %age Used FLASH: 91160 B 1 MB 8.69% SRAM: 5056 B 248 KB 1.99% IDT_LIST: 0 GB 2 KB 0.00%然后将十六进制文件重新刷新到设备上:
west flash
成功,重新刷新固件
-- west flash: rebuilding ninja: no work to do. -- west flash: using runner openocd -- runners.openocd: Flashing file: D:/01_Work/udk1-sdk/udk1-sdk/leaps-udk1-examples/build/zephyr/zephyr.hex xPack Open On-Chip Debugger 0.12.0-01004-g9ea7f3d64-dirty (2023-01-30-15:04) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html DEPRECATED! use 'adapter speed' not 'adapter_khz' exit_debug_mode Info : Using CMSIS-DAPv2 interface with VID:PID=0x0d28:0x0204, serial=01100E003602002d00184146570120313238 Info : CMSIS-DAP: SWD supported Info : CMSIS-DAP: Atomic commands supported Info : CMSIS-DAP: Test domain timer supported Info : CMSIS-DAP: FW Version = 2.1.0 Info : CMSIS-DAP: Serial# = 01100E003602002d00184146570120313238 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 : clock speed 10000 kHz Info : SWD DPIDR 0x2ba01477 Info : [nrf52.cpu] Cortex-M4 r0p1 processor detected Info : [nrf52.cpu] target has 6 breakpoints, 4 watchpoints Info : starting gdb server for nrf52.cpu on 3333 Info : Listening on port 3333 for gdb connections TargetName Type Endian TapName State -- ------------------ ---------- ------ ------------------ ------------ 0* nrf52.cpu cortex_m little nrf52.cpu running [nrf52.cpu] halted due to debug-request, current mode: Thread xPSR: 0x01000000 pc: 0x00002e10 msp: 0x20002b10 Info : nRF52840-CKAA(build code: D0) 1024kB Flash, 256kB RAM Warn : Adding extra erase range, 0x00007f9c .. 0x00007fff auto erase enabled wrote 32668 bytes from file D:/01_Work/udk1-sdk/udk1-sdk/leaps-udk1-examples/build/zephyr/zephyr.hex in 1.178412s (27.072 KiB/s) [nrf52.cpu] halted due to debug-request, current mode: Thread xPSR: 0x01000000 pc: 0x00002a5c msp: 0x20002850 verified 32668 bytes in 0.099523s (320.552 KiB/s)分别按下C, B和A按钮运行TEST_BUTTONS示例时的输出.
*** Booting Zephyr OS build 5db7528340ec *** PRESS BUTTON EXAMPLE Button C is pressed at 24778 Button C is released at 28996 Button B is pressed at 76012 Button B is released at 81454 Button A is pressed at 104172 Button A is released at 109917