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

    文章

    18604

    浏览量

    386730
  • 恩智浦
    +关注

    关注

    14

    文章

    6051

    浏览量

    134165
  • IDE
    IDE
    +关注

    关注

    0

    文章

    363

    浏览量

    48733
  • RTOS
    +关注

    关注

    25

    文章

    862

    浏览量

    122587
  • Zephyr
    +关注

    关注

    0

    文章

    47

    浏览量

    6510

原文标题:Zephyr的构建工具

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【瑞萨RA6E2】zephyr系统适配、点亮led及uart输出测试

    拿到RA工作室寄过来的RA-Eco-RA6E2-64PIN-V1.0 开发板已经两周多了,之前陆陆续续的写过几篇测评,今天我们写写有关zephyr实时操作系统的测评。 Zephyr 是 Linux
    发表于 11-16 17:57

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

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

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

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

    全网最全学习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 1250次阅读
    <b class='flag-5'>Zephyr</b> SDK Glue v0.5.0 发布

    使用Percepio View免费跟踪工具分析Zephyr应用

    Percepio View免费跟踪工具现在可以针对Zephyr应用程序进行跟踪和可视化分析了。Percepio View可以帮助开发人员理解和调试Zephyr中的固定优先级的多线程行为及复杂的线程交互。
    的头像 发表于 05-27 15:08 582次阅读
    使用Percepio View免费跟踪<b class='flag-5'>工具</b>分析<b class='flag-5'>Zephyr</b>应用

    使用Tracealyzer调试Zephyr中的优先级反转

    Percepio Tracealyzer已经在600多个支持Zephyr的开发板上完成了验证,可以帮助开发人员改进Zephyr应用的调试和性能分析。
    的头像 发表于 04-21 11:31 979次阅读
    使用Tracealyzer调试<b class='flag-5'>Zephyr</b>中的优先级反转

    恩智浦分享Zephyr调试技巧

    前面几期中,我们着重给大家介绍了如何搭建Zephyr开发环境,以及如何添加自己的应用代码。今天让我们开始一个新的篇章:Zephyr调试技巧以及介绍Ozone进行Zephyr的调试分享。 Zep
    的头像 发表于 03-13 09:05 1873次阅读

    恩智浦解读Zephyr log系统的使用 Zephyr的shell和log功能介绍

    之前 我们从 0 开始新建了一个简单的 Zephyr 应用- 从0开始打造属于自己的HelloWorld ,本期就 带着大家熟悉一下 Zephyr 的 shell 和 log 系统。 首先给大家介绍
    的头像 发表于 02-27 09:19 1701次阅读
    恩智浦解读<b class='flag-5'>Zephyr</b> log系统的使用 <b class='flag-5'>Zephyr</b>的shell和log功能介绍

    使用Ozone调试基于nRF9160 Zephyr应用程序

    Ozone是SEGGER免费的嵌入式软件调试器。它是一个强大的工具,可以让你深入了解嵌入式系统中发生的事情。它在调试nRF9160 Zephyr应用程序时特别有用。整理多个线程和多映像构建可能很困难,但这就是你想要的
    的头像 发表于 02-25 17:07 1424次阅读
    使用Ozone调试基于nRF9160 <b class='flag-5'>Zephyr</b>应用程序

    IAR加入Zephyr项目,强化开源协作承诺

    支持。 Zephyr作为一个广泛应用于嵌入式行业的开源实时操作系统(RTOS),凭借其灵活性和高效性,已经赢得了众多嵌入式领域重要企业的青睐。IAR Systems此次加入Zephyr项目,旨在通过提供专业的开发工具和解决方案,
    的头像 发表于 02-17 09:55 804次阅读

    IAR正式加入Zephyr项目,成为银牌会员

    的深度承诺和持续贡献。 Zephyr是一款广泛应用于嵌入式领域的开源实时操作系统(RTOS),凭借其高性能、可靠性和灵活性,已赢得了众多嵌入式领域重要企业的青睐和支持。IAR作为嵌入式系统开发的佼佼者,此次加入Zephyr项目,旨在通过提供专业级的
    的头像 发表于 02-12 14:25 861次阅读

    IAR正式加入Zephyr项目

    嵌入式领域的重要企业支持。此次合作充分彰显了IAR对开源社区的深度承诺,致力于为开发者提供专业级工具和解决方案,同时助力Zephyr RTOS在嵌入式开发领域的持续发展。
    的头像 发表于 02-12 14:19 922次阅读

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

    本期来到Zephyr实战经验演练,小编带着大家一起使用MCUXpresso for VS Code插件来开发一个属于Zephyr的hello world。
    的头像 发表于 01-03 09:21 1780次阅读
    使用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 2736次阅读
    <b class='flag-5'>Zephyr</b>领进门系列:MCUXPresso for VS Code插件安装