查看: 1278|回复: 3

[分享] Zephyr的构建工具

[复制链接]
  • TA的每日心情
    开心
    2025-7-11 08:53
  • 签到天数: 301 天

    连续签到: 2 天

    [LV.8]以坛为家I

    3908

    主题

    7522

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    39756
    最后登录
    2025-8-8
    发表于 2024-12-5 09:13:57 | 显示全部楼层 |阅读模式
    相较于其他RTOS,如FreeRTOS和RTThread,Zephyr OS在入门阶段的一个挑战在于它缺乏一个专门的集成开发环境(IDE),这使得图形化工程开发变得不那么直接。然而,这一局限性同时也带来了一个显著的优势:它赋予了开发者前所未有的自由度,能够根据个人偏好选择心仪的开发工具。


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


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


    今天,小编就来给大家介绍一下Zephyr的构建工具们:
    12.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或Windows Visual Studio的工程文件。Zephyr是通过CMake来进行工程管理的,通过编写CMakeLists.txt来定义工程结果以及构建流程。
    3. Ninja:Ninja是一个专注于速度的小型构建系统,它由Google开发并被许多开源项目采用它最初是为了提高Chromium浏览器项目的构建速度而设计的,但现在已经广泛应用于许多其他开源项目。可以简单地理解,他就是升级版的make。Zephyr通过CMake生成ninja格式的构建文件,来对Zephyr进行编译。
    4. Zephyr-SDK:提供了针对不同平台的工具链,用户可以根据自己的需要,下载对应平台的工具进行代码编译:
    13.png
    5. Git:Zephyr的代码管理工具。
    6. West:Zephyr的原生工具,基于Python编写,集成了:git管理,项目构建,编译,调试以及代码烧录的功能。可以说,west在手,Zephyr你值得拥有。就像刚才所介绍的,一条简单的west build指令就可以完成整个Zephyr代码工程的build过程,非常方便。
    至此,我们已经全面介绍了Zephyr OS的整套构建工具。希望这些信息能对大家有所帮助,相信在掌握了这些知识后,大家未来遇到问题时能够从容不迫、游刃有余地应对!


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


    qiandao qiandao
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 09:55
  • 签到天数: 1795 天

    连续签到: 7 天

    [LV.Master]伴坛终老

    54

    主题

    4421

    帖子

    21

    金牌会员

    Rank: 6Rank: 6

    积分
    9270
    最后登录
    2025-8-9
    发表于 2024-12-5 10:16:35 | 显示全部楼层
    支持,学习学习
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    前天 09:56
  • 签到天数: 351 天

    连续签到: 5 天

    [LV.8]以坛为家I

    12

    主题

    1133

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2603
    最后登录
    2025-8-8
    发表于 2024-12-5 10:34:47 | 显示全部楼层
    Zephyr 没玩过啊,不知道难不难用,生态咋样
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-12-5 10:45
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    0

    主题

    4

    帖子

    0

    新手上路

    Rank: 1

    积分
    36
    最后登录
    2025-4-22
    发表于 2024-12-5 10:47:07 | 显示全部楼层
    牛牛牛,支持支持
    签到签到
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-8-10 14:16 , Processed in 0.096356 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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