Zephyr的构建工具

描述

相较于其他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的构建工具们:

恩智浦

可能有小伙伴会问,照你这样说,我们入乡随俗就行了,而且平时我们直接一个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:提供了针对不同平台的工具链,用户可以根据自己的需要,下载对应平台的工具进行代码编译:

恩智浦

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

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

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

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

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

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分