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

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

3天内不再提示

Zephyr的构建工具

恩智浦MCU加油站 来源: 恩智浦MCU加油站 2024-12-05 09:51 次阅读

相较于其他RTOS,如FreeRTOSRTThread,Zephyr OS在入门阶段的一个挑战在于它缺乏一个专门的集成开发环境(IDE),这使得图形化工程开发变得不那么直接。然而,这一局限性同时也带来了一个显著的优势:它赋予了开发者前所未有的自由度,能够根据个人偏好选择心仪的开发工具。

举例来说,开发者可以充分利用Visual Studio Code(VS Code)这一强大的代码编辑器,并通过安装适当的插件来支持Zephyr OS项目的调试。更进一步,VS Code不仅限于代码编辑,它还可以与其他广受好评的调试工具无缝协作,如GDB调试器和Eclipse IDE等,这些工具都是开发者群体中极为熟悉且信赖的。

但在此过程中,有一个关键点需要开发者特别注意:尽管在代码编辑和调试方面拥有高度灵活性,Zephyr OS在代码构建和编译方面却拥有一套自成体系的解决方案。这套构建系统是Zephyr OS的核心组成部分,不仅稳定且高效,同时也意味着它并非轻易可改动的。因此,对于希望深入Zephyr OS开发的爱好者而言,理解并适应这套构建系统显得尤为重要。简而言之,就是要学会“入乡随俗”,充分利用Zephyr OS提供的强大工具链,而不是试图去挑战或改变它。

今天,小编就来给大家介绍一下Zephyr的构建工具们:

fc3d8e78-b2a2-11ef-93f3-92fbcf53809c.png

可能有小伙伴会问,照你这样说,我们入乡随俗就行了,而且平时我们直接一个west build(不熟悉Zephyr的小伙伴可能有些迷惑,这是啥,west build是Zephyr提供的一个基于命令行的构建指令,通过一条简单的west build指令就可以构建整个Zephyr代码,包括工程的构建以及代码编译)就可以了,为啥还要知道这些?那就要翻出那句老话了:知己知彼百战不殆。因为Zephyr的构建系统所依赖的工具有点多,往往一个环节报错就会导致整个构建流程失败,而每一个工具本身的报错信息都很独特。为了更好的了解这些报错信息,我们就需要事先知道,我们首先需要预先明确Zephyr OS本身究竟依赖于哪些构建工具:

1. Python:这是我们在安装Zephyr依赖包前要干的第一件事情。Zephyr本身几乎所有的工具都是基于Python开发的,例如设备树文件的预处理、kconfig文件的整合于处理、MCUBoot对于镜像的签名等,可以说,Python是整套Zephyr构建系统的地基。换句话说,可能绝大多数的构建问题最终发现都能从python环境这里找到解决方案。 2. CMake:CMake是一个跨平台的自动化构建系统,它使用名为CMakeLists.txt的文件来描述构建过程。它是一个开源的跨平台自动化构建系统,最初在2000年开发。它通过使用名为CMakeLists.txt的配置文件来生成标准的构建文件,如Unix的Makefile或WindowsVisual Studio的工程文件。Zephyr是通过CMake来进行工程管理的,通过编写CMakeLists.txt来定义工程结果以及构建流程。

3. Ninja:Ninja是一个专注于速度的小型构建系统,它由Google开发并被许多开源项目采用它最初是为了提高Chromium浏览器项目的构建速度而设计的,但现在已经广泛应用于许多其他开源项目。可以简单地理解,他就是升级版的make。Zephyr通过CMake生成ninja格式的构建文件,来对Zephyr进行编译。

4. Zephyr-SDK:提供了针对不同平台的工具链,用户可以根据自己的需要,下载对应平台的工具进行代码编译:

fc58bc66-b2a2-11ef-93f3-92fbcf53809c.png

5. Git:Zephyr的代码管理工具。

6. West:Zephyr的原生工具,基于Python编写,集成了:git管理,项目构建,编译,调试以及代码烧录的功能。可以说,west在手,Zephyr你值得拥有。就像刚才所介绍的,一条简单的west build指令就可以完成整个Zephyr代码工程的build过程,非常方便。

至此,我们已经全面介绍了Zephyr OS的整套构建工具。希望这些信息能对大家有所帮助,相信在掌握了这些知识后,大家未来遇到问题时能够从容不迫、游刃有余地应对!

请继续关注后续即将发表的Zephyr OS环境安装及如何从0写自己的helloWorld示例~

恩智浦致力于打造安全的连接和基础设施解决方案,为智慧生活保驾护航。

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

    关注

    146

    文章

    17172

    浏览量

    351568
  • 恩智浦
    +关注

    关注

    14

    文章

    5863

    浏览量

    107656
  • IDE
    IDE
    +关注

    关注

    0

    文章

    338

    浏览量

    46782
  • RTOS
    +关注

    关注

    22

    文章

    815

    浏览量

    119707
  • Zephyr
    +关注

    关注

    0

    文章

    22

    浏览量

    5979

原文标题:Zephyr的构建工具

文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用MCUXpresso for VS Code插件开发Zephyr的hello world

    本期来到Zephyr实战经验演练,小编带着大家一起使用MCUXpresso for VS Code插件来开发一个属于Zephyr的hello world。
    的头像 发表于 01-03 09:21 398次阅读
    使用MCUXpresso for VS Code插件开发<b class='flag-5'>Zephyr</b>的hello world

    Zephyr领进门系列:MCUXPresso for VS Code插件安装

    在上一期-Zephyr构建工具,我们为大家介绍了一位新朋友,Zephyr OS。相信通过上一篇的介绍,大家已经对这一OS有了一些简单的了解。那么本期小编将带着大家一起从0开始结合VS Code搭建
    的头像 发表于 12-19 09:53 1014次阅读
    <b class='flag-5'>Zephyr</b>领进门系列:MCUXPresso for VS Code插件安装

    使用MCUXPresso插件开发Zephyr

    的基础知识,到构建工具的详解,再到环境安装的步骤指导,我们将一步步带你走进Zephyr的世界。此外,我们还准备了如何从0写自己的helloWorld示例来详细介绍调试技巧,助你轻松上手并深入掌握。
    的头像 发表于 11-28 09:41 295次阅读

    使用SSR构建React应用的步骤

    App等脚手架工具快速创建一个React项目。 根据需要配置Babel、Webpack等构建工具,以确保项目能够正确编译和运行。 安装必要的依赖 : 安装React和React-DOM等核心依赖
    的头像 发表于 11-18 11:30 343次阅读

    深入解析Zephyr RTOS的技术细节

    Zephyr是一个针对资源受限设备优化的小型、可缩放、多体系架构实时操作系统(RTOS)。Zephyr由Linux基金会维护[1],是一个以构建业界最佳的RTOS为目标的开源合作项目。近年来
    的头像 发表于 10-22 16:47 568次阅读
    深入解析<b class='flag-5'>Zephyr</b> RTOS的技术细节

    如何在zephyr上使能esp32-c3内置的USB串口?

    如题,请问如何在zephyr上使能esp32-c3内置的 USB 串口。
    发表于 06-12 08:11

    请问如何将Zephyr OS移植到KIT_PSOCE84_EVK?

    我正试图将 Zephyr OS 移植到 KIT_PSOCE84_EVK,但官方的 Zephyr 支持板列表中并没有列出它。 所以,看来我得自己移植了。 是否有针对 Zephyr OS 的移植指南或支持?
    发表于 05-30 07:32

    请问CYW20829B0-P4模块是否支持Zephyr

    嗨, 请问 CYW20829B0-P4 模块是否支持 Zephyr? 如果没有,有什么计划吗?
    发表于 05-28 06:00

    MCXN947与Zephyr的跨界合作 嵌入式技术的新飞跃

    Zephyr 的官方文档中详细介绍了环境的搭建过程, 同时 NXP 也提供了工具解决 Zephyr 安装过程所需的依赖。 了解 Zephyr 架构 为了移植
    发表于 05-23 09:19 614次阅读
    MCXN947与<b class='flag-5'>Zephyr</b>的跨界合作 嵌入式技术的新飞跃

    英飞凌是否为AIROC CYW20829 Bluetooth LE SoC芯片和模块提供Zephyr支持?

    英飞凌是否为 AIROC CYW20829 Bluetooth LE SoC 芯片和模块提供 Zephyr 支持?
    发表于 05-20 06:19

    瑞萨正式加入Zephyr项目,携手共建开源实时操作系统新生态

    近日,业界领先的半导体解决方案提供商瑞萨宣布正式加入Zephyr®项目,并荣升为银级会员。Zephyr作为Linux基金会的开源项目,致力于面向未来、资源受限的设备打造安全、互联且灵活的实时操作系统(RTOS)。瑞萨的加入无疑将为Zep
    的头像 发表于 03-12 09:18 707次阅读

    瑞萨正式加入Zephyr项目

    近日,瑞萨正式加入Zephyr项目,成为银级会员。Zephyr是Linux基金会的开源项目,旨在为面向未来且资源受限的设备建立安全、互联且灵活的实时操作系统。Zephyr设计来源于开发人员,也更易
    的头像 发表于 03-09 17:43 1849次阅读

    鸿蒙开发【编译构建】讲解

    Version 8~9在编译构建体系、工程目录及配置文件等存在差异,接下来将详细介绍两者之间的差异。 构建体系 HarmonyOS应用/服务API Version 47和API Version 89的构建工具
    发表于 02-27 17:41

    嵌入式电子控制单元(ECU)中如何准确找出运行时使用的RAM量?

    我知道嵌入式软件构建工具报告程序闪存使用情况。我认为他们也报告了 RAM 使用情况,但他们是否报告了最大 RAM 使用率? 生成工具可能不知道在运行时将使用多少堆。是否还有其他构建工具不知道的 RAM 使用情况? 如何准确找
    发表于 01-31 07:48

    如何在Zephyr OS中使用cyhal?

    我一直在使用Zephyr和 CY8CPROTO-063-BLE 模块,我需要实现一个高速SPI驱动器。 不幸的是,Zephyr 驱动程序的开销使每次传输的每次 SPI 传输都有大约 25 秒的额外
    发表于 01-29 07:12