请选择 进入手机版 | 继续访问电脑版
查看: 381|回复: 0

[分享] Zephyr领进门系列:使用MCUXPresso插件开发Zephyr

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-8 16:43
  • 签到天数: 299 天

    [LV.8]以坛为家I

    3618

    主题

    7138

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    36342
    最后登录
    2025-1-17
    发表于 2024-12-5 09:05:18 | 显示全部楼层 |阅读模式
    应广大读者朋友的热情邀请,我们特别策划了“Zephyr领进门”系列介绍(共十篇),旨在为大家深度剖析Zephyr OS——这一备受瞩目的开源实时操作系统。从使用MCUXPresso插件进行开发的基础知识,到构建工具的详解,再到环境安装的步骤指导,我们将一步步带你走进Zephyr的世界。此外,我们还准备了如何从0写自己的helloWorld示例来详细介绍调试技巧,助你轻松上手并深入掌握。


    背景与发展
    Zephyr OS的开发始于2016年,旨在提供一种适用于低功耗设备的实时操作系统。随着物联网(IoT)技术的迅速发展,Zephyr OS逐渐演变为一个由Linux基金会主办的社区驱动项目,支持多种硬件架构,包括ARM Cortex-M系列、x86、RISC-V等。Zephyr的设计理念是为各种资源受限的设备提供一个高效、可扩展的操作系统解决方案。
    随着时间的发展,Zephyr OS的开发得到了全球开发者和企业的支持,形成了一个活跃的社区。
    13.png
    主要特性
    1. 轻量级设计


    Zephyr OS的内核非常小巧,通常在几KB到几十KB之间,这使得它能够在极低功耗和资源受限的环境中运行。其设计目标是尽量减少内存使用和CPU占用,使得开发者能够在小型微控制器上运行复杂的应用程序。


    2. 模块化架构
    Zephyr OS采用模块化设计,允许开发者根据具体需求选择和配置功能模块。开发者可以通过Kconfig系统轻松启用或禁用特定功能,从而优化系统性能和资源使用。这种灵活性使得Zephyr能够适应多种不同的应用场景。


    3. 多线程与调度
    Zephyr OS支持多线程编程,提供优先级调度机制,允许开发者创建响应迅速的应用程序。其调度算法能够有效管理多个任务,确保实时性和稳定性。开发者可以为每个线程设置优先级,从而优化任务的执行顺序,满足实时应用的需求。


    4. 设备驱动支持
    Zephyr OS内置了多种设备驱动程序,支持各种传感器、通信模块和外设。通过统一的API,开发者可以方便地与硬件交互,简化开发过程。此外,Zephyr还支持设备树(Device Tree)机制,使得硬件描述更加灵活,便于移植和扩展。


    5. 网络支持
    Zephyr OS支持多种网络协议,包括IPv4、IPv6、Bluetooth、LoRa、Zigbee等。这使得它能够轻松连接到各种网络,适应不同的应用场景。Zephyr的网络堆栈经过优化,能够在资源有限的设备上高效运行。


    6. 安全性
    随着IoT设备的普及,安全性成为一个重要问题。Zephyr OS在设计时考虑了安全性,提供了多种安全功能,如安全启动、加密、访问控制等。此外,Zephyr还支持TLS/SSL协议,确保数据传输的安全性。


    开发环境
    Zephyr OS提供了一套完整的开发工具链,包括SDK、编译器和调试工具。开发者可以使用C或C++编写应用程序,并通过Zephyr的命令行工具进行构建和调试。
    1. Zephyr SDK
    Zephyr SDK是一个跨平台的开发环境,包含了构建Zephyr应用所需的所有工具。它支持Linux、Windows和macOS等操作系统,方便开发者在不同平台上进行开发。SDK中包含了编译器、调试器、模拟器等工具,帮助开发者快速构建和测试应用。


    2. 示例应用


    Zephyr OS提供了丰富的示例应用程序,帮助开发者快速上手。这些示例涵盖了从简单的LED闪烁到复杂的传感器数据采集等多种应用场景。开发者可以根据这些示例学习如何使用Zephyr的API和功能,加速开发过程。


    3. 文档与支持
    Zephyr OS提供了详细的官方文档,包括API参考、开发指南和教程,帮助开发者理解和使用Zephyr。此外,社区也提供了多种支持渠道,如邮件列表、论坛和社交媒体,开发者可以在这些平台上交流经验、解决问题。


    NXP与Zephyr
    恩智浦(NXP)作为Zephyr项目的创始成员之一,一直以六大白金会员的身份持续坚定地支持该项目。Zephyr项目的特点与恩智浦面向边缘连接设备的产品组合高度契合,特别是在安全、互联且具备安全认证的设备方面。目前,多个恩智浦平台已获得恩智浦客户和Zephyr社区的共同支持。为了进一步推动产品系列中超级平台的更全面支持,恩智浦正在加大投入。这不仅为低端部件提供了更便捷的支持路径(例如,从i.MX RT1064平台衍生出对i.MX RT1020的支持等)。当然除了NXP官方对于不同嵌入式平台的支持,一些社区和爱好者们也为NXP平台的Zephyr支持贡献了自己的一份力量。
    NXP与Zephyr开发模式
    恩智浦(NXP)及社区共同贡献并维护了Zephyr的upstream工作组。NXP积极参与upstram工作组的开发工作,并在MCUXpresso SDK的基础上进行开发。SDK的裸机驱动程序和CMSIS设备头文件已被贡献到上游。通过Shim驱动程序将SDK接口适配到Zephyr接口,以最大化代码重用。此外,所有经过推送的Zephyr代码,都会在NXP的board farm中进行硬件测试以保证代码的可靠性以及稳定性。
    当新产品发布后,NXP会首先提供新产品的Zephyr基础支持,所谓基础支持可以理解为Zephyr的最小系统,如下表所示,包括系统内核、控制台以及一些基础驱动的支持:
    14.png
    从2021年开始,恩智浦就已经遵循此规范进行开发,从基础支持开始,逐步推进,并最终推出完整的外设支持:


    第一个里程碑是在NXP的新产品发布后,在最近的Zephyr版本中进行基础版本的开发以及代码推送。


    第二个里程碑是完整的代码发布。


    当然,NXP欢迎Zephyr社区和客户为任何恩智浦平台贡献和增强驱动程序代码。


    最终,我们会将完整的代码支持全部推送到Zephyr主线中,以FRDM-K64F为例,全平台支持。


    NXP的Zephyr支持
    当使用NXP的产品开发Zephyr并遇到问题时,可以通过公共的Zephyr社区进行支持-NXP Zephyr Community。这样可以将所有公开讨论和解决方案集中在同一位置,并且客户可以从整个Zephyr社区的帮助中受益。

    此外,恩智浦也提供了私人支持。恩智浦的公共社区还中有一个专门的Zephyr页面,恩智浦的支持团队会实时监控Zephyr社区,以帮助客户解决特定于恩智浦平台的问题。 当然也可以通过正常的支持渠道,联系CAS和DFAEs获得Zephyr支持。


    签到签到
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-1-19 12:26 , Processed in 0.110410 second(s), 19 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表