从 SDK 开始
注解
请注意,第三方应用程序的开发不在 UDK 的服务范围内,因此不属于预付费 UDK 支持的一部分。
本节为选择和启动 LEAPS 示例项目提供全面指导,这些示例项目专为 Zephyr 实时操作系统平台设计. 这些示例有助于加深对 UWB(超宽带)技术 和 UDK 工具包的 硬件接口 的理解。
有了这些知识,用户就可以放心地在 UDK 套件上开发自定义应用程序。
指导遵循以下步骤:
在Linux, macOS或Windows上为 Zephyr 实时操作系统设置开发环境。
获取UDK的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支持主题
选择 启动 > 设置 > 更新与安全 > Windows更新。点击 检查更新 并安装任何可用的更新。
安装依赖项
接下来,你将使用软件包管理器安装一些主机依赖包。
当前主要依赖项所需的最低版本是:
工具 |
最小. 版本 |
---|---|
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
这些说明必须在 cmd.exe
命令提示符终端窗口中运行. 在现代版本的 Windows 中(10 及更高版本),建议从微软商店安装 Windows 终端应用程序. PowerShell 所需的指令有所不同。
这些说明依赖于 Chocolatey. 如果没有 Chocolatey,你可以从它们各自的网站上安装依赖项,并确保命令行工具位于你的 PATH 环境变量 上。
以 管理员 身份打开
cmd.exe
终端窗口。为此,按下Windows键,输入cmd.exe
,右键单击 命令提示符 搜索结果,并选择 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 ~/udk-sdk/.venv
激活虚拟环境:
source ~/udk-sdk/.venv/bin/activate
激活后,您的shell将以
(.venv)
作为前缀. 通过运行deactivate
,可以随时停用虚拟环境。注解
每次开始工作时,记得激活虚拟环境。
安装west
pip install west
创建新的虚拟环境:
python3 -m venv ~/udk-sdk/.venv
激活虚拟环境:
source ~/udk-sdk/.venv/bin/activate
激活后,您的shell将以
(.venv)
作为前缀. 通过运行deactivate
,可以随时停用虚拟环境。注解
每次开始工作时,记得激活虚拟环境。
安装west
pip install west
安装west
pip3 install -U west
以普通用户身份打开
cmd.exe
终端窗口创建新的虚拟环境:
cd %HOMEPATH% python -m venv udk-sdk\.venv
激活虚拟环境:
udk-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目录,您必须重新运行设置脚本。
安装 UDK-SDK 软件包
注解
UDK SDK 也是一个基于 Zephyr 的示例应用程序。 若要深入了解,请参阅此 示例应用程式 页面。
小心
我们将很快提供已发布的 udk-sdk资源库
. 请继续关注!
第一步是初始化工作区文件夹 udk-sdk
,leaps-udk-examples
和所有 Zephyr 模块都会被克隆到这里. 请遵循以下说明
打开终端
使用主版本初始化 leaps-udk-examples 的 udk-sdk 工作区。
west init -m <udk-sdk repository> --mr main udk-sdk克隆 Zephyr 源代码(版本 3.1.0)及其模块。
cd udk-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-udk-examples 的 udk-sdk 工作区。
west init -m <udk-sdk repository> --mr main udk-sdk小心
我们将很快提供已发布的
udk-sdk资源库
. 请继续关注!克隆 Zephyr 源代码(版本 3.1.0)及其模块。
cd udk-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-udk-examples 的 udk-sdk 工作区。
west init -m <udk-sdk repository> --mr main udk-sdk克隆 Zephyr 源代码(版本 3.1.0)及其模块。
cd udk-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
![]()
选择关闭和新打开(或新打开)
协调示例执行
在 UDK-SDK 软件包的 @yourdir/udk-sdk/leaps-udk-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-udk-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 @/udk-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-udk-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 @/udk-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-udk-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 (@/udk-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/udk-sdk/udk-sdk/leaps-udk-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/udk-sdk/udk-sdk/leaps-udk-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