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
    +关注

    关注

    147

    文章

    19255

    浏览量

    405237
  • 恩智浦
    +关注

    关注

    14

    文章

    6144

    浏览量

    155290
  • IDE
    IDE
    +关注

    关注

    0

    文章

    369

    浏览量

    49310
  • RTOS
    +关注

    关注

    25

    文章

    873

    浏览量

    123286
  • Zephyr
    +关注

    关注

    1

    文章

    63

    浏览量

    6648

原文标题:Zephyr的构建工具

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用IAR Arm工具链开发和调试Zephyr RTOS

    Zephyr是近些年来兴起的一款开源、可扩展RTOS (Zephyr不仅仅是一个内核,还包含了强大的中间件),专为资源受限的嵌入式设备设计,支持多种CPU架构,提供完整的开发工具链和丰富的生态系统,越来越多MCU厂商积极拥抱
    的头像 发表于 05-25 09:50 2479次阅读
    使用IAR Arm<b class='flag-5'>工具</b>链开发和调试<b class='flag-5'>Zephyr</b> RTOS

    如何在 RAM 中使用 NXP Link2 在 NXP Zephyr V4.1 中运行“hello_world”示例

    到 RAM”功能需要直接为项目的构建系统指定内存区域。然而,尝试各种方法需要花费大量时间并且没有任何进展。 我认为恩智浦总部也在开发与 Zephyr 相关的项目,将它们下载到 RAM。您能否举例说明
    发表于 05-25 07:28

    芯科科技发布Simplicity SDK for Zephyr开发资源

    Silicon Labs(芯科科技)发布Simplicity SDK for Zephyr旨在将Zephyr实时操作系统(RTOS)的全部功能,与其Simplicity Studio软件工具所擅长
    的头像 发表于 03-31 15:26 1073次阅读

    Zephyr OS上启用NPU的实用方案

    今天,我们将正式在 Zephyr中加入NPU软件支持,让模型不仅能“跑起来”,还能“跑得飞快”。是的,本期开始就是实战环节!
    的头像 发表于 03-09 10:37 1256次阅读
    在<b class='flag-5'>Zephyr</b> OS上启用NPU的实用方案

    在 VisionFive 2 上尝试 Zephyr 时没有输出是怎么回事?

    我按照指示进行作官方文档在 VisionFive 2 上测试 Zephyr hello_world demo,虽然我成功编译了目标程序,但发送到 UART 后,我在 tty 上没有看到任何输出
    发表于 02-05 06:49

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

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

    当RA MCU遇见Zephyr系列(4)——闪灯程序的构建与调试

    Zephyr集成开发环境在上一篇文章中我们成功了搭建了环境,那么接下来就用闪灯程序来认识一下编译和调试工具吧!点击Project加号右边的文件,创建新项目,在导航栏中选择
    的头像 发表于 01-06 18:05 7744次阅读
    当RA MCU遇见<b class='flag-5'>Zephyr</b>系列(4)——闪灯程序的<b class='flag-5'>构建</b>与调试

    【瑞萨FPB-RA6E2试用】【原创】基于【瑞萨FPB-RA6E2】Windows 下Zephyr RTOS自定义项目开发全流程(创建-编译-烧录-串口调试)

    dqx_ra6e2 4. 构建和烧写项目 cd D:\\\\Zephyr\\\\myapps\\\\my_hello_app west build -p auto -b fpb_ra6e2 输出日志
    发表于 01-01 15:35

    当RA MCU遇见Zephyr系列(3)——在Vs code中配置Zephyr集成开发环境

    RA生态工作室关注我们上一篇文章介绍了如何在VScode中使用瑞萨官方插件为RA芯片创建项目与项目调试,相信大家对RA在VScode中的开发有了基础的了解。当RAMCU遇见Zephyr,打通
    的头像 发表于 01-01 10:04 5269次阅读
    当RA MCU遇见<b class='flag-5'>Zephyr</b>系列(3)——在Vs  code中配置<b class='flag-5'>Zephyr</b>集成开发环境

    【瑞萨FPB-RA6E2试用】基于瑞萨FPB-RA6E2,在Windows环境的Zephyr-RTOS安装教程

    CMake 包 。这样 CMake 就可以自动加载构建 Zephyr 应用程序所需的样板代码。 west zephyr-export 输出日志: (.venv) PS D:\\\\Zeph
    发表于 12-28 10:36

    当RA MCU遇见Zephyr系列(2)——搭建瑞萨RA VS code开发环境

    在上一篇文章“当RAMCU遇见Zephyr,打通嵌入式开发任督二脉!”中,我们介绍了Zephyr极具前景的发展趋势以及瑞萨开发板对Zephyr的深度融合支持。在智能终端、物联网、安全设备等高速发展
    的头像 发表于 12-17 12:04 4890次阅读
    当RA MCU遇见<b class='flag-5'>Zephyr</b>系列(2)——搭建瑞萨RA VS code开发环境

    芯科科技升级Zephyr项目铂金等级

    Silicon Labs (芯科科技)已将其在 Zephyr 项目的会员等级提升至铂金级,这标志着我们对开源生态系统以及在资源受限硬件上构建安全、互联设备的开发者群体的长期承诺。
    的头像 发表于 09-19 10:29 1373次阅读

    IAR平台现已提供对Zephyr RTOS的量产级支持

    IAR宣布,其嵌入式开发平台正式推出对Zephyr RTOS的量产级支持。该支持自IAR的Arm开发工具链v9.70起全面提供。
    的头像 发表于 07-09 15:43 851次阅读

    全网最全学习Zephyr开发教程资料汇总-从基础文档视频到上手实操示例

    Zephyr 开发之路,我们不断迭代终于有了这份上手学习Zephyr的开发教程资料汇总。这里面涵盖了从 Zephyr 基础知识讲解,到构建系统、设备驱动、线程调度等核心功能剖析,再到
    发表于 07-04 11:13

    Zephyr SDK Glue v0.5.0 发布

    各位关注先楫的小伙伴们,基于Zephyrv3.7.0(LTS)版本和hpm_sdkv1.6.0版本的ZephyrSDKgluev0.5.0正式发布了。先楫MCU的Zephyr开发包Zephyr是一个通用的嵌入式实时操作系统,具备良好的拓展性。ZephyrSDKGlue(简
    的头像 发表于 06-17 16:53 2118次阅读
    <b class='flag-5'>Zephyr</b> SDK Glue v0.5.0 发布