Zephyr快速入门

上次修改时间: Aug 1, 2025支持 边缘互联设备的Zephyr™ OS

本文档内容

  • 1

    设置
  • 2

    构建、运行
  • 3

    创建
  • 4

    Developer Experience (开发人员体验)

1. 设置

1.1 准备Zephyr环境

欢迎观看视频,我们将引导您使用Visual Studio Code和MCUXpresso扩展,快速搭建Zephyr开发环境,并在Windows操作系统中运行。

目标是简化设置流程,帮助您快速启动应用开发,无需过多关注底层细节。

  1. 下载和安装Visual Studio Code
    获取最新版VS Code for Windows。
  2. 安装MCUXpresso Extension for VS Code
    添加恩智浦官方扩展,以启用嵌入式开发功能。
  3. 运行MCUXpresso安装程序
    使用安装程序设置SDK、工具链和环境。
  4. 安装Zephyr存储库
    克隆并配置Zephyr存储库以完成设置。
  5. 安装MCUXpresso配置工具
    Zephyr的引脚工具支持适用于V25.03及更高版本。
  6. 安装MCUXpresso安全配置工具

1.2 安装工具链

恩智浦提供了一款适用于VSCode的免费扩展插件,名为MCUXpresso for VS Code。下载VS Code以访问扩展库。

Visual Studio Code

获取VS Code

了解如何为主机安装VS Code,参考以下教程

1.3 采用Zephyr Developer快速启动您的设计项目

MCUXpresso安装程序包含一个名为“Zephyr Developer”的选项。除了Zephyr SDK外,该选项还将下载所有必要的组件、工具和依赖项。Zephyr软件开发套件(SDK)包含Zephyr支持的每种架构的工具链,其中包括编译器、汇编器、链接器和构建Zephyr应用所需的其他程序。

在MCUXpresso for VSCode的“快速启动面板”中找到MCUXpresso安装程序

GS-ZEPHYR-IMG1.3

1.4 MCUXpresso配置工具

MCUXpresso配置工具是一套集成的配置工具,可指导用户创建新的MCUXpresso SDK项目,还可提供引脚和时钟工具,以生成支持定制板的初始化C代码。引脚工具配备GUI,可帮助选择应用所需的所有信号,并配置引脚复用和引脚设置。从v25.03版本开始,配置工具可以为i.MX RT1xxx和MCX器件生成Zephyr板pinctrl文件。Zephyr使用pinctrl配置SOC的引脚和pinmux设置。

点击下面的“Get MCUXpresso Config Tools”(获取MCUXpresso配置工具),获取配置工具安装程序。

MCUXpresso Config Tools

获取MCUXpresso配置工具

1.5 编程和配置工具

MCUXpresso安全配置(SEC)工具是一款基于GUI的应用,用于简化在恩智浦MCU上生成和配置可启动的可执行文件。建议所有用户首先使用MCUXpresso安全配置(SEC)工具进行试运行和大规模生产。它支持在量产阶段对恩智浦微控制器进行安全编程和设备配置。下载该工具后,可在“帮助”选项卡下找到用户指南。按照“处理器特定工作流程”一章中针对您的板的说明进行操作。

SEC

下载SEC

1.6 熟悉MCUXpresso for VS Code

MCUXpresso for VS Code的关键功能介绍

初次使用MCUXpresso for VS Code时,了解一些关键功能和工具将有助于简化开发流程。本节旨在为您提供整体概览,而非深入探讨,以便您快速了解整体框架,并根据需要进一步探索。

快速启动面板

用于创建、导入和管理项目的启动平台。它提供了常见任务的快捷方式。其中最常用的是“从存储库导入示例”和“打开MCUXpresso安装程序”。

Projects(项目)视图

用于组织工作区和项目文件。了解Zephyr项目的结构将有助于您更高效地浏览和管理代码。

Getting Started with Zephyr

设备树

设备树用于描述硬件布局和配置。在编译Zephyr Project并刷新DEVICE TREE视图后,该视图将以树状结构显示项目的硬件层级信息。可以查看节点及其相关值。

Getting Started with Zephyr

Pristine Build(完全重构)

使用此功能可对您的项目进行彻底清理并重新构建。在切换配置或解决构建问题时,它的作用尤为明显。

Getting Started with Zephyr

调试

MCUXpresso for VSCode集成了多种调试器。了解如何设置断点、逐步执行代码和检查变量以有效地排除故障。

Getting Started with Zephyr

终端和串行监测器

该终端旨在实现与导入的存储库进行命令行交互。该串行终端允许您通过UART与板进行交互。适用于日志记录、调试以及实时通信。

Getting Started with Zephyr

1.7 准备硬件

本指南将以FRDM-MCXN947板为例,带您逐步了解如何开始使用Zephyr系统。但您也可以选择其他评估板,并按照相同的通用流程进行操作。

  1. 选择评估板

    虽然本指南使用FRDM-MCXN947,但也可以将其替换为其他支持的板。需确保以下几点:

    • 确认板支持Zephyr
    • 检查是否有任何特定于板的设置说明
  2. 更新板载调试器固件

    大多数评估板都配有板载调试器。为确保兼容性和稳定性:请验证板的调试器固件是否为最新版本。

    LinkServer固件页面下载最新的固件。选择合适的固件类型:

    • CMSIS-DAP
    • Segger J-Link

    如果您的板未配备板载调试器,请将外部调试器连接到目标板。

  3. 为板供电>

    在开发过程中,需要为板供电。常见方法包括:

    • USB线(最常见)
    • 圆柱形插孔连接器(适用于部分板)
  4. 连接板

2. 构建、运行

本节将介绍如何使用MCUXpresso for VS Code导入并构建适用于FRDM-MCXN947板的Blinky LED示例。本流程涵盖在VS Code环境中完成示例选择、构建配置、项目编译及烧写至板的各个步骤。最终,您将获得一个在硬件上运行的LED闪烁应用,为您自己基于Zephyr的项目打下坚实的基础。

也可以使用其他板,按照相同的步骤进行操作。查看支持的板页面。

2.1 导入和构建Zephyr Blinky示例

  1. 打开VS Code,启动MCUXpresso Extension
  2. 展开MCUXpresso快速启动面板(通常位于左侧边栏)。

    Getting Started with Zephyr
  3. 导入Blinky示例
  4. 在对话中:

    • 存储库:选择Zephyr存储库
    • Zephyr SDK:选择最新可用版本
    • 板:FRDM-MCXN947 CPU0
    • 模板:Blinky示例
    • 应用类型:独立应用
    • 名称:blinky
    • 位置:C:\FreestandingZephyrProjects\
    • 点击Import(导入)导入项目
    Getting Started with Zephyr
  5. 构建项目
  6. 在Projects(项目)视图中,右键单击“imported project”文件夹。选择"Pristine Build/Rebuild Project"(完全重构/重构项目)

    应能在终端输出中看到“构建流程成功完成”的提示。

    Getting Started with Zephyr
  7. 调试板
  8. 通过USB (Type-C)连接FRDM-MCXN947。在Projects(项目)视图中,右键单击“imported project”文件夹。

    选择Debug(调试)。这将启动调试会话,您可以在其中启动应用、跳过指令、进入或退出功能、暂停或退出调试会话。

    按下"Play/Continue"(“播放/继续”)按钮将执行应用。板上的LED灯将开始闪烁。

    Getting Started with Zephyr

3. 创建

3.1 使用设备树编辑器为Zephyr RTOS创建新的配置

  1. 在VSCode中的MCUXpresso扩展左下角启动DeviceTree (设备树)编辑器。点击刷新图标,以加载配置
  2. Getting Started with Zephyr
  3. 进入'alias'(别名)部分
  4. 点击节点或属性时,MCUXpresso设备树查看器将打开定义该节点或设置属性的源位置。

    Getting Started with Zephyr Getting Started with Zephyr
  5. 按照别名找到实际的LED节点。在本示例中,我们将看到led0led_3。打开'leds'部分,点击led_3查看代码
  6. Getting Started with Zephyr Getting Started with Zephyr
  7. 在这里,为红色LED灯定义GPIO 0引脚10
  8. Getting Started with Zephyr
  9. 添加一个额外的GPIO引脚
  10. 然而,可以使用另一个引脚,将其连接到外部LED、电压表或示波器,以呈现LED的闪烁效果。在此示例中,将使用GPIO 0引脚15,该引脚连接到FRDM-MCXN947上的Arduino接头的J4 引脚10

    Getting Started with Zephyr
  11. 返回alias(别名)部分,为新的外部引脚添加一个用于引用的别名。
  12. Getting Started with Zephyr
  13. 进入src文件夹中project(项目)文件下的main.c源代码,用新的外部LED led3替换led0
  14. Getting Started with Zephyr
  15. 重新构建项目
  16. 现在,在运行之前,可在设备树查看器中看到新增项已经显示出来了。

    Getting Started with Zephyr
  17. 调试或烧写设备
  18. 将外部LED、万用表或示波器连接到板上的引脚,以验证其是否按预期进行开关切换。

4.Developer Experience(开发人员体验)

4.1 Zephyr Developer Experience

基于MCX和i.MX RT系列的Zephyr可移植性

本视频展示了Zephyr在优化两种不同MCU架构方面的可移植性优势。在人脸检测演示中,它在配备神经处理单元和基本显示器的MCX N947与带有内置显示界面的i.MX RT1060上运行。教程讲解了如何实现平台抽象,使应用在两个版本之间保持不变。点击链接,查看完整视频。