从 SDK 开始

注解

请注意,第三方应用程序的开发不在 UDK1 的服务范围内,因此不属于预付费 UDK1 支持的一部分.

本节为选择和启动 LEAPS 示例项目提供全面指导,这些示例项目专为 Zephyr 实时操作系统平台设计. 这些示例有助于加深对 UWB(超宽带)技术 和 UDK1 工具包的 硬件接口 的理解.

有了这些知识,用户就可以放心地在 UDK1 套件上开发自定义应用程序.

指导遵循以下步骤:

  1. 在Linux, macOS或Windows上为 Zephyr 实时操作系统设置开发环境.

  2. 获取UDK1的SDK,它是基于 Zephyr 的示例应用程序包.

  3. 将设备连接到主机和所需的工具.

  4. 选择示例, 构建, 闪存并运行一个示例程序.


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>`_

选择 启动 > 设置 > 更新与安全 > 视窗更新. 点击 检查更新 并安装任何可用的更新.

安装依赖项

接下来,你将使用软件包管理器安装一些主机依赖包.

当前主要依赖项所需的最低版本是:

工具

最小. 版本

CMake

3.20.5

Python

3.10

Devicetree编译器

1.4.6

  1. 如果使用的Ubuntu版本早于22.04,则有必要添加额外的软件源,以满足上述主要依赖项的最低版本要求. 在这种情况下,请下载, 检查并执行 Kitware 存档脚本,将 Kitware APT 仓库添加到源代码列表中. 关于 kitware-archive.sh 的详细解释,请参阅 kitware第三方apt仓库:

    wget https://apt.kitware.com/kitware-archive.sh
    sudo bash kitware-archive.sh
    
  2. 使用 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
    
  3. 输入验证系统上安装的主要依赖版本:

    cmake --version
    python3 --version
    dtc --version
    

    与本节开头的表格中的版本进行核对. 请参阅 installation_linux 页面,了解手动更新依赖项的更多信息.

  1. 安装 Homebrew

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
  2. 在 Homebrew 安装脚本完成后,按照屏幕上的指示,将 Homebrew 安装程序添加到路径中.

    • 在苹果硅上运行的 macOS 上,可以通过以下方法实现:

      (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> ~/.zprofile
      source ~/.zprofile
      
    • 在 Intel 上运行的 macOS,使用 Apple Silicon 的命令,但将 /opt/homebrew/ 替换为 /usr/local/.

  3. 使用 brew 安装所需的依赖项:

    brew install cmake ninja gperf python3 ccache qemu dtc libmagic wget openocd minicom
    
  4. 在路径中添加 Homebrew Python 文件夹,以便能够执行 python` ``pip 以及 python3pip3.

    (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.

  1. 安装chocolatey.

  2. 以**管理员**身份打开 cmd.exe 终端窗口. 为此,按下窗户键,输入 cmd.exe,右键单击:guilabel: 命令提示符 搜索结果,并选择:guilabel:Run as管理员.

  3. 禁用全局确认,以避免必须确认单个程序的安装:

    choco feature enable -n allowGlobalConfirmation
    
  4. 使用 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依赖项可能难以安装.

  5. 关闭终端窗口.

安装West

WestZephyr 的瑞士军刀命令行工具,要安装它,请执行以下命令:

  1. 使用 apt 安装Python venv 包:

    sudo apt install python3-venv
    
  2. 创建新的虚拟环境:

    python3 -m venv ~/udk1-sdk/.venv
    
  3. 激活虚拟环境:

    source ~/udk1-sdk/.venv/bin/activate
    

    激活后,您的shell将以``(.venv)``作为前缀. 通过运行``deactivate``,可以随时停用虚拟环境.

    注解

    每次开始工作时,记得激活虚拟环境.

  4. 安装west

    pip install west
    

安装west,并确保 ~/.local/bin 在您的 PATH 环境变量 上:

pip3 install --user -U west
echo 'export PATH=~/.local/bin:"$PATH"' >> ~/.bashrc
source ~/.bashrc
  1. 创建新的虚拟环境:

    python3 -m venv ~/udk1-sdk/.venv
    
  2. 激活虚拟环境:

    source ~/udk1-sdk/.venv/bin/activate
    

    激活后,您的shell将以``(.venv)``作为前缀. 通过运行``deactivate``,可以随时停用虚拟环境.

    注解

    每次开始工作时,记得激活虚拟环境.

  3. 安装west

    pip install west
    

安装west

pip3 install -U west
  1. 以普通用户身份打开 “cmd.exe ”终端窗口**

  2. 创建新的虚拟环境:

    cd %HOMEPATH%
    python -m venv udk1-sdk\.venv
    
  3. 激活虚拟环境:

    udk1-sdk\.venv\Scripts\activate.bat
    

    激活后,您的shell将以``(.venv)``作为前缀. 通过运行``deactivate``,可以随时停用虚拟环境.

    注解

    每次开始工作时,记得激活虚拟环境.

  4. 安装west

    pip install west
    
  1. 以普通用户身份打开 “cmd.exe ”终端窗口**

  2. 安装west

    pip3 install -U west
    

安装 Zephyr SDK

注解

如果你想卸载 SDK,你可以直接移除安装它的目录.

  1. 下载并验证 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.

  2. 解压缩 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>.

  3. 运行 Zephyr SDK bundle 安装脚本:

    cd zephyr-sdk-0.14.2
    ./setup.sh
    

    注解

    在解压缩 Zephyr SDK 软件包后,您只需要运行一次设置脚本.

    如果您在初始设置后重新定位Zephyr SDK bundle目录,您必须重新运行设置脚本.

  4. 安装 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
    
  1. 下载并验证 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.

  2. 解压缩 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>.

  3. 运行 Zephyr SDK bundle 安装脚本:

    cd zephyr-sdk-0.14.2
    ./setup.sh
    

    注解

    在解压缩 Zephyr SDK 软件包后,您只需要运行一次设置脚本.

    如果您在初始设置后重新定位Zephyr SDK bundle目录,您必须重新运行设置脚本.

  1. 以普通用户身份打开 “cmd.exe ”终端窗口**

  2. 下载 Zephyr SDK bundle

    cd %HOMEPATH%
    wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.14.2/zephyr-sdk-0.14.2_windows-x86_64.zip
    
  3. 解压缩 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>.

  4. 运行 Zephyr SDK bundle 安装脚本:

    cd zephyr-sdk-0.14.2
    setup.cmd
    

    注解

    在解压缩 Zephyr SDK 软件包后,您只需要运行一次设置脚本.

    如果您在初始设置后重新定位Zephyr SDK bundle目录,您必须重新运行设置脚本.

安装 UDK1-SDK 软件包

注解

UDK1 SDK 也是一个基于 Zephyr 的示例应用程序. 若要深入了解,请参阅此 示例应用程式 页面.

小心

我们将很快提供已发布的 udk1-sdk资源库. 请继续关注!

第一步是初始化工作区文件夹 udk1-sdkleaps-udk1-examples 和所有 Zephyr 模块都会被克隆到这里. 请遵循以下说明

  1. 打开终端

  2. 使用主版本初始化 leaps-udk1-examplesudk1-sdk 工作区.

    west init -m <udk1-sdk repository> --mr main udk1-sdk
    
  3. 克隆 Zephyr 源代码(版本 3.1.0)及其模块.

    cd udk1-sdk
    west update
    
  4. 导出一个 Zephyr CMake软件包. 这将允许CMake自动加载构建 Zephyr 应用程序所需的模板代码.

    west zephyr-export
    
  5. Zephyr 的scripts/requirements.txt文件声明了额外的Python依赖项. 使用pip安装它们.

    pip install -r ./zephyr/scripts/requirements.txt
    
  6. 设置 $ZEPHYR_BASE 环境.

    source zephyr/zephyr-env.sh
    
  1. 打开终端

  2. 使用主版本初始化 leaps-udk1-examplesudk1-sdk 工作区.

    west init -m <udk1-sdk repository> --mr main udk1-sdk
    

    小心

    我们将很快提供已发布的 udk1-sdk资源库. 请继续关注!

  3. 克隆 Zephyr 源代码(版本 3.1.0)及其模块.

    cd udk1-sdk
    west update
    
  4. 导出一个 Zephyr CMake软件包. 这将允许CMake自动加载构建 Zephyr 应用程序所需的模板代码.

    west zephyr-export
    
  5. Zephyr 的scripts/requirements.txt文件声明了额外的Python依赖项. 使用pip安装它们.

    pip install -r ./zephyr/scripts/requirements.txt
    
  6. 设置 $ZEPHYR_BASE 环境.

    source zephyr/zephyr-env.sh
    
  1. 以普通用户身份打开``cmd.exe``终端窗口

  2. 使用主版本初始化 leaps-udk1-examplesudk1-sdk 工作区.

    west init -m <udk1-sdk repository> --mr main udk1-sdk
    
  3. 克隆 Zephyr 源代码(版本 3.1.0)及其模块.

    cd udk1-sdk
    west update
    
  4. 导出一个 Zephyr CMake软件包. 这将允许CMake自动加载构建 Zephyr 应用程序所需的模板代码.

    west zephyr-export
    
  5. Zephyr 的scripts/requirements.txt文件声明了额外的Python依赖项. 使用pip安装它们.

    pip install -r zephyr/scripts/requirements.txt
    
  6. 设置 $ZEPHYR_BASE 环境.

    cd zephyr
    zephyr-env.cmd
    

设备设置

在执行范例程序之前,请确保设备已经连接,并按照以下步骤打开控制台窗口:

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

    ../../../_images/leaps-connect-usb-port2.gif
  2. 参考 编程/升级固件 部分的 OpenOCD 选项卡,安装 OpenOCD 工具. 本节还包括闪存固件的其他解决方案.

  3. 执行以下命令,打开minicom (Linux和macOs)或 Tera Term (Windows) 访问已连接的串口,并准备好查看示例中打印的信息.

  1. 打开终端

  2. 使用ttyACM<X>执行下面的命令(0是第一个连接设备的默认端口)

    minicom -b 115200 -D /dev/ttyACM0
    

    注解

    请使用以下命令验证所有连接的设备(ttyACM<X>),您打算重新刷新这些设备

    ls ../../dev/
    
  3. 成功连接设备后

    Welcome to minicom 2.8
    
    OPTIONS: I18n
    Port /dev/ttyACM0, 04:49:57
    
    Press CTRL-A Z for help on special keys
    
  1. 打开终端

  2. 使用/dev/tty.usb<xxx>执行以下命令(以modem1410为例)

    minicom -b 115200 -D /dev/tty.usbmodem1410
    

    注解

    请使用以下命令验证您打算重新刷新的连接设备 (tty.usb<xxx>)

    ls ../../dev/
    
  3. 成功连接设备后

    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
    
  1. 打开 Tera Term 工具

  2. 转到设置>串行端口

    ../../../_images/setup.png
  3. 选择设备的连接端口 (例如:端口5正在连接设备)

    ../../../_images/port.png
  4. 选择速度为 115200

    ../../../_images/speed.png
  5. 选择关闭和新打开(或新打开)

协调示例执行

在 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

构建并运行示例

本节将指导您如何构建和重新刷新软件.

注解

如果在 Zephyr 环境中出现任何问题,请参阅 安装 故障排除 部分.

  1. 确保完整的 设备设置 指南.

  2. 进入示例目录

    cd leaps-udk1-examples
    
  3. (可选) 清理旧的联编目录

    rm -rf build/
    
  4. 建立范例

    本节将指导你如何通过选择一个预期的示例来构建示例.

    1. 当 $BOARD 为 leaps_lc14 或 leaps_lc13 时,执行以下命令来显示菜单

      west build -t menuconfig -b $BOARD -s app
      
    2. 选择 示例应用程序,然后按 Enter

      ../../../_images/main_menu.png
    3. 你将看到默认的**示例**,如果你想选择其他示例,请按回车键

      ../../../_images/menu_default_example.png
    4. 向上或向下滚动,选择**示例**,然后按回车键

      ../../../_images/menu_example_list.png
    5. 按 ESC 和 Y 保存选择

      ../../../_images/menu_exit_andsave.png
    6. 建立范例

      west build
      
    7. 成功建立范例

      [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%
      

    本节将指导您如何使用默认示例构建示例.

    1. 执行以下命令,$BOARD 为 leaps_lc14 或 leaps_lc13

      west build -b $BOARD -s app
      
    2. 成功建立范例

      [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%
      
  5. 然后将十六进制文件重新刷新到设备上:

    west flash
    
  6. 成功,重新刷新固件

    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)
    
  7. 分别按下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
    
  1. 确保完整的 设备设置 指南.

  2. 进入示例目录

    cd leaps-udk1-examples
    
  3. (可选) 清理旧的联编目录

    rm -rf build/
    
  4. 建立范例

    本节将指导您如何通过选择一个预期示例来构建示例.

    1. 当 $BOARD 为 leaps_lc14 或 leaps_lc13 时,执行以下命令来显示菜单

      west build -t menuconfig -b $BOARD -s app
      
    2. 选择 示例应用程序,然后按 Enter

      ../../../_images/main_menu.png
    3. 你将看到默认的**示例**,如果你想选择其他示例,请按回车键

      ../../../_images/menu_default_example.png
    4. 通过向上/向下滚动选择**示例**,然后按 Enter

      ../../../_images/menu_example_list.png
    5. 按 ESC 和 Y 保存选择

      ../../../_images/menu_exit_andsave.png
    6. 建立范例

      west build
      
    7. 成功建立范例

      [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%
      

    本节将指导您如何使用默认示例构建示例.

    1. 执行以下命令,$BOARD 为 leaps_lc14 或 leaps_lc13

      west build -b $BOARD
      
    2. 成功建立范例

      [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%
      
  5. 然后将十六进制文件重新刷新到设备上:

    west flash
    
  6. 成功,重新刷新固件

    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)
    
  7. 分别按下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
    
  1. 确保完整的 设备设置 指南.

  2. 进入示例目录

    cd leaps-udk1-examples
    
  3. (可选)清理旧的联编目录,然后按 Y

    rd /s build
    
  4. 建立范例

    本节将指导你如何通过选择一个预期的示例来构建示例.

    1. 当 $BOARD 为 leaps_lc14 或 leaps_lc13 时,执行以下命令来显示菜单

    west build -t menuconfig -b $BOARD -s app
    
    1. 选择 示例应用程序,然后按 Enter

    ../../../_images/main_menu.png
    1. 你将看到默认的**示例**,如果你想选择其他示例,请按回车键

    ../../../_images/menu_default_example.png
    1. 向上或向下滚动,选择**示例**,然后按回车键

    ../../../_images/menu_example_list.png
    1. 按 ESC 和 Y 保存选择

    ../../../_images/menu_exit_andsave.png
    1. 建立范例

    west build
    
    1. 成功建立范例

    [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%
    

    本节将指导您如何使用默认示例构建示例.

    1. 执行以下命令,$BOARD 为 leaps_lc14 或 leaps_lc13

      west build -b $BOARD -s app
      
    2. 成功建立范例

      [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%
      
  5. 然后将十六进制文件重新刷新到设备上:

    west flash
    
  6. 成功,重新刷新固件

    -- 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)
    
  7. 分别按下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