0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

保姆级教程 | i.MX 93开发板适配Zephyr RTOS全解析

飞凌嵌入式 2026-04-28 08:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

Zephyr是Linux基金会旗下开源实时操作系统(RTOS),由IntelNXP、Google、Qualcomm等头部厂商持续支持,现已迭代至v4.x。它支持700余款开发板与主流处理器架构。

Zephyr 不是传统 RTOS 的替代品,而是将云计算时代的开发理念引入资源受限的嵌入式世界——解决碎片化、安全性和开发效率问题的下一代基础软件,它的设计理念是:模块化、可裁剪、开箱即用

i.MX 9352作为NXP推出的轻量级边缘AI处理器,集成2个Cortex-A55核和1个Cortex-M33实时核,其架构设计充分体现了对实时性与复杂任务处理能力的兼顾。为了帮助开发者充分利用i.MX 9352 M33核的实时能力,结合VSCode+MCUX扩展的完整开发体验,本文将介绍如何在Zephyr中完成M33核PWM驱动的验证,帮助读者快速上手 Zephyr 在工业级 SoC 上的移植与测试实践。

演示平台:飞凌嵌入式OK-MX9352-C开发板

wKgZPGnxWxCASf-9ABTWQPXXUho808.png


1、为什么选择Zephyr?

1.1 相比传统RTOS,Zephyr的核心优势

wKgZO2nxWxCAHqoRAABGk1NWCAU467.png


从"写代码配置硬件"到"声明硬件关系"

传统痛点:每换一个MCU引脚或外设,就要重写驱动、调寄存器、改编译选项。Zephyr以Devicetree硬件蓝图(.dts)描述整个硬件布局,更换硬件只需修改蓝图,核心业务代码几乎不动;搭配Kconfig图形化配置工具,可像 Linux 内核一样灵活裁剪系统功能。

从"功能实现"到"安全与功耗原生设计"

传统痛点:传统RTOS的安全、低功耗能力多为后期追加功能,漏洞多、优化难度大。Zephyr从底层设计就以安全为核心,覆盖安全启动链、MPU内存保护、加密服务等全链路安全能力;基于事件驱动的电源管理框架,可实现微安级精准功耗控制。

从"单一固件"到"可移植的软件资产"

传统痛点:A公司芯片写的驱动,在B公司芯片上几乎要重写。Zephyr 统一设备模型,驱动一次开发可跨厂商芯片复用;蓝牙Wi-Fi、Matter等协议栈即插即用,与硬件底层隔离,让核心代码成为可复用、可迭代的软件资产。

1.2 Zephyr vs FreeRTOS

Zephyr和FreeRTOS都属于实时操作系统,且都面向物联网场景深化布局,但二者在软件架构、内核设计上有明显差异。

核心设计哲学

wKgZPGnxWxCAN5UMAABBVGBOwRI924.png

系统架构

wKgZPGnxWxCAT3kxAABd7CX95dY532.png

协议栈与功能

wKgZO2nxWxCAKOMpAABRZHxxDjk278.png

资源占用Cortex-M4最小核无外设

wKgZO2nxWxCAaMprAAAUG9mO4XA760.png

开发环境与调试

wKgZPGnxVd6AVjmaAADj_UMdtWo374.png

根据上述对比,发现Zephyr也有一下短板:

  • 学习曲线陡峭
  • 资源占用更大
  • 构建系统复杂
  • 上下文切换性能不如FreeRTOS

从对比能看出,Zephyr的短板主要集中在入门阶段和极致资源受限场景,一旦团队熟悉开发流程、硬件资源满足要求,这些劣势会快速弱化;而它的可移植性、安全能力、生态优势,会随着项目复杂度提升愈发明显。


1.3 Zephyr 应用场景

医疗与可穿戴设备

Zephyr的确定性实时响应和低功耗特性,可支撑连续血糖监测、心脏监护等医疗级应用,满足量产医疗设备的技术要求。

工业自动化

支持10BASE-T1S等工业以太网协议,适配工厂自动化、过程控制场景,OSADL已为Zephyr建立工业领域量化性能基准。

智能家居消费电子

从Matter协议支持到蓝牙5.4完整协议栈,Zephyr正成为智能家居生态核心支撑。Arduino VENTUNO Q平台已采用 Zephyr确保时间关键型任务的确定性执行。

汽车电子

随着汽车电子架构向集中式演进,Zephyr的模块化设计和内存保护机制满足了汽车功能安全要求,是车载域控制器的理想选择。

2、开发环境搭建(VSCode+MCUX)

2.1 工具准备

推荐使用NXP MCUXpresso for VS Code扩展,插件已内置核心能力:

1. CMakePresets.json一键构建

2. SEGGER J-Link / LinkServer调试支持

3. 设备树可视化可直接预览 .overlay 文件

安装步骤:

1. 安装VS Code编辑器

2. 在扩展市场搜索并安装MCUXpresso for VS Code

3. 按插件引导安装west、Zephyr SDK、arm-none-eabi-gcc工具链

2.2 工程结构

使用CMakePresets.json管理构建配置,每个应用统一如下结构:

my_app/ ├── CMakeLists.txt ├── CMakePresets.json ← 指定 BOARD、构建目录 ├── prj.conf ← Kconfig 全局配置 ├── boards/ │ ├── imx93_evk_mimx9352_m33.overlay ← 板级 DTS 扩展 │ └── imx93_evk_mimx9352_m33.conf ← 板级 Kconfig 覆盖 └── src/ └── main.c

CMakePresets.json示例:

{ "configurePresets": [ { "name": "debug", "cacheVariables": { "BOARD": "imx93_evk/mimx9352/m33", "CMAKE_BUILD_TYPE": "debug" } } ] }

在VSCode中,点击底部状态栏的Build按钮即可完成编译,无需手动敲命令。

3、设备树Overlay:Zephyr的硬件描述核心

Zephyr通过Devicetree描述硬件,板级差异通过.overlay文件叠加,无需修改官方主DTSI文件,这也是 Zephyr 高可移植性的核心设计。

RTC 外设的Overlay 描述

RTC(实时时钟)是工业与消费电子产品中必不可少的外设。在Zephyr中,外部RTC芯片通过I2C总线挂载,并在.overlay文件中完整描述其连接关系,应用层只需调用统一的RTC API,无需关心底层硬件差异。

以i.MX93 EVK接入EPSON RX8010为例,overlay需要做两件事:启用I2C控制器并添加RTC子节点,同时通过aliases让上层应用找到该设备:

/* boards/imx93_evk_mimx9352_m33.overlay */ &lpi2c3 { status = "okay"; clock-frequency = ; /* 400 kHz */ pinctrl-0 = <&i2c3_default>; pinctrl-names = "default"; rx8010: rx8010@32 { compatible = "epson,rx8010"; /* 匹配驱动 binding */ reg = <0x32>; /* I2C 设备地址 */ status = "okay"; }; }; / { aliases { rtc = &rx8010; /* 应用通过 "rtc" 别名访问 */ }; };

应用代码中只需:

const struct device *rtc = DEVICE_DT_GET(DT_ALIAS(rtc)); struct rtc_time tm = { .tm_year = 125, .tm_mon = 3, .tm_mday = 20 }; rtc_set_time(rtc, &tm); rtc_get_time(rtc, &tm);

可移植性体现:若将RX8010更换为其他Zephyr支持的 RTC芯片(如DS3231、PCF8563),只需修改overlay 中的compatiblereg,应用代码零改动

4、驱动验证实践

本节展示在i.MX 93开发板的M33核上已完成验证的PWM驱动样例。

样例pwm_api—使用TPM2 控制器输出PWM信号

我们通过Import Example from Repository导入pwm_api项目后

overlay只需声明别名:

/* boards/imx93_evk_mimx9352_m33.overlay */ / { aliases { pwm-test = &tpm2; }; };

Kconfig 配置:

/* boards/imx93_evk_mimx9352_m33.overlay */ CONFIG_PWM=y

测试通过pwm_set_cycles()/pwm_set()设置占空比,可用示波器验证输出波形。i.MX93的TP(Timer/PWM Module)直接映射到Zephyrnxp,kinetis-tpm驱动,无需任何自定义代码。

5、Zephyr 开发中的常用调试技巧

5.1 Kconfig配置检查

Vscode中project文件中

debug/zephyr/.config 为项目最终合并后的config内容。

5.2 设备树最终输出检查

Vscode中project文件中

debug/zephyr/zephyr.dts 为项目最终合并后的dts内容。

这是排查overlay合并是否生效的最直接方式。

5.3 日志级别

CONFIG_I2C_LOG_LEVEL_DBG=y# 开启 I2C 驱动调试日志

5.4 ztest 测试框架

所有驱动样例均使用ztest框架,运行后通过串口输出结果。以PWM测试为例,烧录后串口输出如下:

*** Booting Zephyr OS build v4.1.0 *** Running TESTSUITE pwm_basic =================================================================== START - test_pwm_nsec [PWM]: 0, [period]: 2000000, [pulse]: 1000000 [PWM]: 0, [period]: 2000000, [pulse]: 2000000 [PWM]: 0, [period]: 2000000, [pulse]: 0 PASS - test_pwm_nsec in 3005 ms START - test_pwm_cycle [PWM]: 0, [period]: 64000, [pulse]: 32000 [PWM]: 0, [period]: 64000, [pulse]: 64000 [PWM]: 0, [period]: 64000, [pulse]: 0 PASS - test_pwm_cycle in 3003 ms =================================================================== TESTSUITE pwm_basic succeeded

输出说明:

test_pwm_nsec:以纳秒为单位依次设置 50% 占空比(1.65V)、100%占空比(3.3V)、0%占空比(0V),每步保持1秒

test_pwm_cycle:以cycle为单位重复上述三种占空比验证,period=64000cycle,pulse依次为32000/ 64000/0

每条[PWM]行对应一次

pwm_set()/pwm_set_cycles()调用,可用示波器或万用表在TPM2输出引脚上验证实际电压。


总结

通过本次i.MX93 M33核的Zephyr移植实践,我们验证了:Zephyr原生的应用pwm_api在i.MX 93 M33核的支持过程。

Zephyr 的核心价值在于:

1.一套驱动API,覆盖所有平台——更换SoC只改overlay,不改应用代码;

2.设备树驱动开发——硬件配置与软件逻辑清晰分离;

3.完整的测试基础设施——ztest+testcase.yaml支持 CI/CD集成;

4.安全与低功耗原生设计——不是后期补丁,是系统基础设施;

5.活跃的上游社区—— 全球超1600名贡献者,每周数百次代码合并。

飞凌嵌入式OK-MX9352-C开发板基于NXP i.MX93设计开发,是一款高性能工业级硬件平台,与Zephyr RTOS适配性优异、稳定性出众,借助Zephyr的工程化能力,开发者可在飞凌嵌入式OK-MX9352-C开发板上快速完成外设驱动开发、系统移植与功能验证,大幅缩短工业产品的研发与量产周期。

对于嵌入式RTOS选型、工业级产品开发的团队而言,飞凌嵌入式OK-MX9352-C开发板+Zephyr RTOS是兼顾开发效率、系统安全与硬件可靠性的优选方案。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5209

    文章

    20678

    浏览量

    337188
  • NXP
    NXP
    +关注

    关注

    61

    文章

    1411

    浏览量

    199344
  • RTOS
    +关注

    关注

    25

    文章

    871

    浏览量

    123222
  • Zephyr
    +关注

    关注

    1

    文章

    62

    浏览量

    6635
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NXP基于i.MX 91应用处理器打造的FRDM i.MX 91开发板特性参数详解

    FRDM i.MX 91开发板。该开发板基于i.MX 91应用处理器打造,专为加速工业与物联网的开发而设计,提供了一种经济高效、安全且具有多
    的头像 发表于 03-21 09:37 19.8w次阅读
    NXP基于<b class='flag-5'>i.MX</b> 91应用处理器打造的FRDM <b class='flag-5'>i.MX</b> 91<b class='flag-5'>开发板</b>特性参数详解

    【瑞萨RA × Zephyr评测】Zephyr RTOS保姆环境构建与编译下载踩坑版

    笔者介绍一下Zephyr RTOS 保姆环境构建与编译下载
    的头像 发表于 01-10 10:03 9740次阅读
    【瑞萨RA × <b class='flag-5'>Zephyr</b>评测】<b class='flag-5'>Zephyr</b> <b class='flag-5'>RTOS</b><b class='flag-5'>保姆</b><b class='flag-5'>级</b>环境构建与编译下载踩坑版

    米尔NXP i.MX 91核心发布,助力新一代入门Linux应用开发

    使用。 MYC-LMX91核心开发板‌基于 NXP i.MX 91作为NXP新款入门处理器,具有低成本、低功耗的特点。i.MX 91配
    发表于 05-30 11:20

    i.MX评估开发板官方资源大全:一键获取,拿走不谢!

    恩智浦官网精彩导览 i.MX评估开发板 好马配好鞍,好的MPU/MCU应用开发,也少不了一块好用的开发板!想驾驭恩智浦的
    的头像 发表于 05-19 11:00 1752次阅读
    <b class='flag-5'>i.MX</b>评估<b class='flag-5'>板</b>和<b class='flag-5'>开发板</b>官方资源大全:一键获取,拿走不谢!

    i.MX 93功耗测量

    电子发烧友网站提供《i.MX 93功耗测量.pdf》资料免费下载
    发表于 08-17 10:32 1次下载
    <b class='flag-5'>i.MX</b> <b class='flag-5'>93</b>功耗测量

    NXP开发板有哪些?基于NXP i.MX 6UL、i.MX 8M Mini、i.MX 8M Plus、LS1028A的开发板概述

    一直以来,米尔和NXP都保持着深度合作,推出了基于NXP系列产品(包括i.MX 6UL、i.MX 8M Mini、i.MX 8M Plus、LS1028A等)的低、中、高端核心
    的头像 发表于 09-15 09:15 4905次阅读
    NXP<b class='flag-5'>开发板</b>有哪些?基于NXP <b class='flag-5'>i.MX</b> 6UL、<b class='flag-5'>i.MX</b> 8M Mini、<b class='flag-5'>i.MX</b> 8M Plus、LS1028A的<b class='flag-5'>开发板</b>概述

    重新定义入门嵌入式处理器模组-米尔NXP i.MX 93核心

    近日,米尔电子推出基于NXP i.MX 93系列产品-MYC-LMX9X核心开发板。NXP i.MX 9系列在
    的头像 发表于 04-19 17:50 1616次阅读
    重新定义入门<b class='flag-5'>级</b>嵌入式处理器模组-米尔NXP <b class='flag-5'>i.MX</b> <b class='flag-5'>93</b>核心<b class='flag-5'>板</b>

    i.MX Linux开发实战指南—基于野火i.MX系列开发板

    电子发烧友网站提供《i.MX Linux开发实战指南—基于野火i.MX系列开发板.pdf》资料免费下载
    发表于 10-10 17:23 14次下载

    NXP推出FRDM i.MX 93开发板, 助力现代工业与边缘智能开发

    近日,恩智浦半导体(NXP Semiconductor)推出了FRDM i.MX 93开发板,这是FRDM系列中第一款基于MPU推出的开发板,以低成本、紧凑的设计为核心,搭载了NXP
    的头像 发表于 02-21 09:19 3617次阅读
    NXP推出FRDM <b class='flag-5'>i.MX</b> <b class='flag-5'>93</b><b class='flag-5'>开发板</b>, 助力现代工业与边缘智能<b class='flag-5'>开发</b>

    恩智浦推出FRDM i.MX 93开发板

    备受嵌入式开发者青睐的恩智浦FRDM开发平台,迎来了一位新成员——FRDM i.MX 93开发板,这也是第一块配备
    的头像 发表于 02-21 14:22 4282次阅读

    NXP首款搭载MPU的FRDM产品怎么样?FRDM i.MX93开发板开箱速览

    近期,NXP将i.MX 93系列处理器引入了FRDM系列产品线,推出了FRDM i.MX 93开发板,作为首款配备
    的头像 发表于 02-26 14:56 3473次阅读
    NXP首款搭载MPU的FRDM产品怎么样?FRDM <b class='flag-5'>i.MX93</b><b class='flag-5'>开发板</b>开箱速览

    NXP i.MX 93 开发板#提供高效的机器学习 支持高能效的边缘计算

    NXP Semiconductors FRDM-IMX93开发板i.MX 93应用处理器提供支持。NXP Semiconductors FRDM-IMX
    的头像 发表于 03-10 15:30 3893次阅读
    NXP <b class='flag-5'>i.MX</b> <b class='flag-5'>93</b> <b class='flag-5'>开发板</b>#提供高效的机器学习 支持高能效的边缘计算

    NXP i.MX 91开发板#支持快速创建基于Linux®的边缘器件

    NXP Semiconductors FRDM i.MX 91开发板设计用于评估i.MX 91应用处理器,支持快速创建基于Linux ^®^ 的边缘器件。该开发板还设计用于入门
    的头像 发表于 05-19 10:55 3429次阅读
    NXP <b class='flag-5'>i.MX</b> 91<b class='flag-5'>开发板</b>#支持快速创建基于Linux®的边缘器件

    简单认识NXP FRDM i.MX 93开发板

    FRDM i.MX 93开发板是一款入门、紧凑型开发板,采用i.MX93应用处理器。该
    的头像 发表于 11-17 09:45 1777次阅读
    简单认识NXP FRDM <b class='flag-5'>i.MX</b> <b class='flag-5'>93</b><b class='flag-5'>开发板</b>

    FRDM i.MX 9平台选型指南:FRDM i.MX 9系列开发平台解析

    恩智浦的FRDM平台解决方案旨在提供易于获取的开发工具,有效弥合原型制作与量产之间的鸿沟。FRDM经济高效、易于使用,具备专业功能,助力从概念到产品上市的全过程加速推进。在FRDM i.M
    的头像 发表于 12-11 15:15 5.3w次阅读
    FRDM <b class='flag-5'>i.MX</b> 9平台选型指南:FRDM <b class='flag-5'>i.MX</b> 9系列<b class='flag-5'>开发</b>平台<b class='flag-5'>解析</b>