欢迎光临
我们一直在努力

Zephyr项目子仓库完整详解

Zephyr项目子仓库完整详解

引言

Zephyr项目采用先进的多仓库架构来管理代码,这种设计既保证了项目的模块化,又便于不同芯片厂商和社区贡献者维护自己的代码。然而,对于初次接触Zephyr的开发者来说,理解和配置这些子仓库可能会感到困惑。

本文基于Zephyr官方文档,详细介绍Zephyr项目的所有子仓库,包括每个仓库的名称、功能、用途,以及如何配置工程以只下载必要的仓库。

信息来源:本文所有子仓库清单均来自 Zephyr官方West Projects文档。


一、Zephyr多仓库架构概述

1.1 为什么采用多仓库架构

#mermaid-svg-g2jkX8pzekKTBHWO{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-g2jkX8pzekKTBHWO .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-g2jkX8pzekKTBHWO .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-g2jkX8pzekKTBHWO .error-icon{fill:#552222;}#mermaid-svg-g2jkX8pzekKTBHWO .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-g2jkX8pzekKTBHWO .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-g2jkX8pzekKTBHWO .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-g2jkX8pzekKTBHWO .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-g2jkX8pzekKTBHWO .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-g2jkX8pzekKTBHWO .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-g2jkX8pzekKTBHWO .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-g2jkX8pzekKTBHWO .marker{fill:#333333;stroke:#333333;}#mermaid-svg-g2jkX8pzekKTBHWO .marker.cross{stroke:#333333;}#mermaid-svg-g2jkX8pzekKTBHWO svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-g2jkX8pzekKTBHWO p{margin:0;}#mermaid-svg-g2jkX8pzekKTBHWO .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-g2jkX8pzekKTBHWO .cluster-label text{fill:#333;}#mermaid-svg-g2jkX8pzekKTBHWO .cluster-label span{color:#333;}#mermaid-svg-g2jkX8pzekKTBHWO .cluster-label span p{background-color:transparent;}#mermaid-svg-g2jkX8pzekKTBHWO .label text,#mermaid-svg-g2jkX8pzekKTBHWO span{fill:#333;color:#333;}#mermaid-svg-g2jkX8pzekKTBHWO .node rect,#mermaid-svg-g2jkX8pzekKTBHWO .node circle,#mermaid-svg-g2jkX8pzekKTBHWO .node ellipse,#mermaid-svg-g2jkX8pzekKTBHWO .node polygon,#mermaid-svg-g2jkX8pzekKTBHWO .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-g2jkX8pzekKTBHWO .rough-node .label text,#mermaid-svg-g2jkX8pzekKTBHWO .node .label text,#mermaid-svg-g2jkX8pzekKTBHWO .image-shape .label,#mermaid-svg-g2jkX8pzekKTBHWO .icon-shape .label{text-anchor:middle;}#mermaid-svg-g2jkX8pzekKTBHWO .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-g2jkX8pzekKTBHWO .rough-node .label,#mermaid-svg-g2jkX8pzekKTBHWO .node .label,#mermaid-svg-g2jkX8pzekKTBHWO .image-shape .label,#mermaid-svg-g2jkX8pzekKTBHWO .icon-shape .label{text-align:center;}#mermaid-svg-g2jkX8pzekKTBHWO .node.clickable{cursor:pointer;}#mermaid-svg-g2jkX8pzekKTBHWO .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-g2jkX8pzekKTBHWO .arrowheadPath{fill:#333333;}#mermaid-svg-g2jkX8pzekKTBHWO .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-g2jkX8pzekKTBHWO .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-g2jkX8pzekKTBHWO .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-g2jkX8pzekKTBHWO .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-g2jkX8pzekKTBHWO .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-g2jkX8pzekKTBHWO .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-g2jkX8pzekKTBHWO .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-g2jkX8pzekKTBHWO .cluster text{fill:#333;}#mermaid-svg-g2jkX8pzekKTBHWO .cluster span{color:#333;}#mermaid-svg-g2jkX8pzekKTBHWO div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-g2jkX8pzekKTBHWO .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-g2jkX8pzekKTBHWO rect.text{fill:none;stroke-width:0;}#mermaid-svg-g2jkX8pzekKTBHWO .icon-shape,#mermaid-svg-g2jkX8pzekKTBHWO .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-g2jkX8pzekKTBHWO .icon-shape p,#mermaid-svg-g2jkX8pzekKTBHWO .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-g2jkX8pzekKTBHWO .icon-shape .label rect,#mermaid-svg-g2jkX8pzekKTBHWO .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-g2jkX8pzekKTBHWO .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-g2jkX8pzekKTBHWO .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-g2jkX8pzekKTBHWO :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

Zephyr项目

模块化设计

多厂商协作

独立版本控制

按需使用

硬件抽象层分离

协议栈独立

工具独立

芯片厂商贡献HAL

社区贡献协议栈

版本兼容性管理

独立发布周期

节省磁盘空间

加速项目初始化

1.2 子仓库分类总览

根据Zephyr官方文档,项目仓库分为三大类:

类别数量说明
Active Projects 62个 默认启用的活跃项目,运行west update时自动下载
Inactive/Optional 16个 可选项目,需要手动启用
External 28个 外部项目,需自定义Manifest引入

二、Active Projects(活跃项目)详解

活跃项目是Zephyr默认Manifest中声明的项目,运行west update时会自动下载。

2.1 CMSIS相关(5个)

仓库名功能GitHub链接
cmsis ARM Cortex-M微控制器软件接口标准 cmsis
cmsis-dsp CMSIS数字信号处理库 cmsis-dsp
cmsis-nn CMSIS神经网络计算库 cmsis-nn
cmsis_6 CMSIS-RTOS2实现 CMSIS_6

功能说明:

  • CMSIS是ARM提供的统一软件接口标准
  • 提供标准化的外设访问接口
  • 包含DSP和NN库用于信号处理和机器学习推理

2.2 Hardware Abstraction Layer(HAL)仓库(28个)

HAL仓库是Zephyr支持多种芯片硬件的关键,总计28个:

主流芯片厂商HAL
仓库名厂商芯片系列GitHub链接
hal_nordic Nordic Semiconductor nRF51, nRF52, nRF53, nRF91 hal_nordic
hal_stm32 STMicroelectronics STM32全系列 hal_stm32
hal_nxp NXP i.MX, LPC, Kinetis hal_nxp
hal_espressif Espressif ESP32系列 hal_espressif
hal_silabs Silicon Labs EFM32, Gecko hal_silabs
hal_intel Intel 英特尔32位处理器 hal_intel
hal_atmel Microchip(Atmel) SAM, AVR hal_atmel
hal_microchip Microchip PIC32, SAM hal_microchip
其他HAL仓库
仓库名厂商/类型GitHub链接
hal_adi Analog Devices hal_adi
hal_ambiq Ambiq hal_ambiq
hal_afbr Abracon hal_afbr
hal_bouffalolab Bouffalo Lab hal_bouffalolab
hal_ethos_u ARM Ethos-U hal_ethos_u
hal_gigadevice GigaDevice GD32
hal_infineon Infineon XMC, PSoC
hal_nuvoton Nuvoton NUC120, M480
hal_openisa OpenISA RISC-V
hal_quicklogic Quicklogic eFPGA
hal_realtek Realtek RTL87xx
hal_renesas Renesas RX, RA
hal_rpi_pico Raspberry Pi RP2040
hal_sifli Sifli hal_sifli
hal_st STMicroelectronics STM32特殊驱动
hal_tdk TDK hal_tdk
hal_telink Telink TLSR8系列
hal_ti Texas Instruments MSP430, Tiva C
hal_wch WCH CH32, CH58x
hal_wurthelektronik Würth Elektronik hal_wurthelektronik
hal_xtensa Cadence Xtensa hal_xtensa

#mermaid-svg-nDkeNHnNhpxhnKcr{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-nDkeNHnNhpxhnKcr .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-nDkeNHnNhpxhnKcr .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-nDkeNHnNhpxhnKcr .error-icon{fill:#552222;}#mermaid-svg-nDkeNHnNhpxhnKcr .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-nDkeNHnNhpxhnKcr .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-nDkeNHnNhpxhnKcr .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-nDkeNHnNhpxhnKcr .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-nDkeNHnNhpxhnKcr .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-nDkeNHnNhpxhnKcr .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-nDkeNHnNhpxhnKcr .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-nDkeNHnNhpxhnKcr .marker{fill:#333333;stroke:#333333;}#mermaid-svg-nDkeNHnNhpxhnKcr .marker.cross{stroke:#333333;}#mermaid-svg-nDkeNHnNhpxhnKcr svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-nDkeNHnNhpxhnKcr p{margin:0;}#mermaid-svg-nDkeNHnNhpxhnKcr .edge{stroke-width:3;}#mermaid-svg-nDkeNHnNhpxhnKcr .section–1 rect,#mermaid-svg-nDkeNHnNhpxhnKcr .section–1 path,#mermaid-svg-nDkeNHnNhpxhnKcr .section–1 circle,#mermaid-svg-nDkeNHnNhpxhnKcr .section–1 polygon,#mermaid-svg-nDkeNHnNhpxhnKcr .section–1 path{fill:hsl(240, 100%, 76.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .section–1 text{fill:#ffffff;}#mermaid-svg-nDkeNHnNhpxhnKcr .node-icon–1{font-size:40px;color:#ffffff;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-edge–1{stroke:hsl(240, 100%, 76.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .edge-depth–1{stroke-width:17;}#mermaid-svg-nDkeNHnNhpxhnKcr .section–1 line{stroke:hsl(60, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled circle,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:lightgray;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:#efefef;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-0 rect,#mermaid-svg-nDkeNHnNhpxhnKcr .section-0 path,#mermaid-svg-nDkeNHnNhpxhnKcr .section-0 circle,#mermaid-svg-nDkeNHnNhpxhnKcr .section-0 polygon,#mermaid-svg-nDkeNHnNhpxhnKcr .section-0 path{fill:hsl(60, 100%, 73.5294117647%);}#mermaid-svg-nDkeNHnNhpxhnKcr .section-0 text{fill:black;}#mermaid-svg-nDkeNHnNhpxhnKcr .node-icon-0{font-size:40px;color:black;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-edge-0{stroke:hsl(60, 100%, 73.5294117647%);}#mermaid-svg-nDkeNHnNhpxhnKcr .edge-depth-0{stroke-width:14;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-0 line{stroke:hsl(240, 100%, 83.5294117647%);stroke-width:3;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled circle,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:lightgray;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:#efefef;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-1 rect,#mermaid-svg-nDkeNHnNhpxhnKcr .section-1 path,#mermaid-svg-nDkeNHnNhpxhnKcr .section-1 circle,#mermaid-svg-nDkeNHnNhpxhnKcr .section-1 polygon,#mermaid-svg-nDkeNHnNhpxhnKcr .section-1 path{fill:hsl(80, 100%, 76.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .section-1 text{fill:black;}#mermaid-svg-nDkeNHnNhpxhnKcr .node-icon-1{font-size:40px;color:black;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-edge-1{stroke:hsl(80, 100%, 76.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .edge-depth-1{stroke-width:11;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-1 line{stroke:hsl(260, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled circle,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:lightgray;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:#efefef;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-2 rect,#mermaid-svg-nDkeNHnNhpxhnKcr .section-2 path,#mermaid-svg-nDkeNHnNhpxhnKcr .section-2 circle,#mermaid-svg-nDkeNHnNhpxhnKcr .section-2 polygon,#mermaid-svg-nDkeNHnNhpxhnKcr .section-2 path{fill:hsl(270, 100%, 76.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .section-2 text{fill:#ffffff;}#mermaid-svg-nDkeNHnNhpxhnKcr .node-icon-2{font-size:40px;color:#ffffff;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-edge-2{stroke:hsl(270, 100%, 76.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .edge-depth-2{stroke-width:8;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-2 line{stroke:hsl(90, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled circle,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:lightgray;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:#efefef;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-3 rect,#mermaid-svg-nDkeNHnNhpxhnKcr .section-3 path,#mermaid-svg-nDkeNHnNhpxhnKcr .section-3 circle,#mermaid-svg-nDkeNHnNhpxhnKcr .section-3 polygon,#mermaid-svg-nDkeNHnNhpxhnKcr .section-3 path{fill:hsl(300, 100%, 76.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .section-3 text{fill:black;}#mermaid-svg-nDkeNHnNhpxhnKcr .node-icon-3{font-size:40px;color:black;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-edge-3{stroke:hsl(300, 100%, 76.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .edge-depth-3{stroke-width:5;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-3 line{stroke:hsl(120, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled circle,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:lightgray;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:#efefef;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-4 rect,#mermaid-svg-nDkeNHnNhpxhnKcr .section-4 path,#mermaid-svg-nDkeNHnNhpxhnKcr .section-4 circle,#mermaid-svg-nDkeNHnNhpxhnKcr .section-4 polygon,#mermaid-svg-nDkeNHnNhpxhnKcr .section-4 path{fill:hsl(330, 100%, 76.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .section-4 text{fill:black;}#mermaid-svg-nDkeNHnNhpxhnKcr .node-icon-4{font-size:40px;color:black;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-edge-4{stroke:hsl(330, 100%, 76.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .edge-depth-4{stroke-width:2;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-4 line{stroke:hsl(150, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled circle,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:lightgray;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:#efefef;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-5 rect,#mermaid-svg-nDkeNHnNhpxhnKcr .section-5 path,#mermaid-svg-nDkeNHnNhpxhnKcr .section-5 circle,#mermaid-svg-nDkeNHnNhpxhnKcr .section-5 polygon,#mermaid-svg-nDkeNHnNhpxhnKcr .section-5 path{fill:hsl(0, 100%, 76.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .section-5 text{fill:black;}#mermaid-svg-nDkeNHnNhpxhnKcr .node-icon-5{font-size:40px;color:black;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-edge-5{stroke:hsl(0, 100%, 76.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .edge-depth-5{stroke-width:-1;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-5 line{stroke:hsl(180, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled circle,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:lightgray;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:#efefef;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-6 rect,#mermaid-svg-nDkeNHnNhpxhnKcr .section-6 path,#mermaid-svg-nDkeNHnNhpxhnKcr .section-6 circle,#mermaid-svg-nDkeNHnNhpxhnKcr .section-6 polygon,#mermaid-svg-nDkeNHnNhpxhnKcr .section-6 path{fill:hsl(30, 100%, 76.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .section-6 text{fill:black;}#mermaid-svg-nDkeNHnNhpxhnKcr .node-icon-6{font-size:40px;color:black;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-edge-6{stroke:hsl(30, 100%, 76.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .edge-depth-6{stroke-width:-4;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-6 line{stroke:hsl(210, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled circle,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:lightgray;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:#efefef;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-7 rect,#mermaid-svg-nDkeNHnNhpxhnKcr .section-7 path,#mermaid-svg-nDkeNHnNhpxhnKcr .section-7 circle,#mermaid-svg-nDkeNHnNhpxhnKcr .section-7 polygon,#mermaid-svg-nDkeNHnNhpxhnKcr .section-7 path{fill:hsl(90, 100%, 76.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .section-7 text{fill:black;}#mermaid-svg-nDkeNHnNhpxhnKcr .node-icon-7{font-size:40px;color:black;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-edge-7{stroke:hsl(90, 100%, 76.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .edge-depth-7{stroke-width:-7;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-7 line{stroke:hsl(270, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled circle,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:lightgray;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:#efefef;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-8 rect,#mermaid-svg-nDkeNHnNhpxhnKcr .section-8 path,#mermaid-svg-nDkeNHnNhpxhnKcr .section-8 circle,#mermaid-svg-nDkeNHnNhpxhnKcr .section-8 polygon,#mermaid-svg-nDkeNHnNhpxhnKcr .section-8 path{fill:hsl(150, 100%, 76.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .section-8 text{fill:black;}#mermaid-svg-nDkeNHnNhpxhnKcr .node-icon-8{font-size:40px;color:black;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-edge-8{stroke:hsl(150, 100%, 76.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .edge-depth-8{stroke-width:-10;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-8 line{stroke:hsl(330, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled circle,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:lightgray;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:#efefef;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-9 rect,#mermaid-svg-nDkeNHnNhpxhnKcr .section-9 path,#mermaid-svg-nDkeNHnNhpxhnKcr .section-9 circle,#mermaid-svg-nDkeNHnNhpxhnKcr .section-9 polygon,#mermaid-svg-nDkeNHnNhpxhnKcr .section-9 path{fill:hsl(180, 100%, 76.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .section-9 text{fill:black;}#mermaid-svg-nDkeNHnNhpxhnKcr .node-icon-9{font-size:40px;color:black;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-edge-9{stroke:hsl(180, 100%, 76.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .edge-depth-9{stroke-width:-13;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-9 line{stroke:hsl(0, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled circle,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:lightgray;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:#efefef;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-10 rect,#mermaid-svg-nDkeNHnNhpxhnKcr .section-10 path,#mermaid-svg-nDkeNHnNhpxhnKcr .section-10 circle,#mermaid-svg-nDkeNHnNhpxhnKcr .section-10 polygon,#mermaid-svg-nDkeNHnNhpxhnKcr .section-10 path{fill:hsl(210, 100%, 76.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .section-10 text{fill:black;}#mermaid-svg-nDkeNHnNhpxhnKcr .node-icon-10{font-size:40px;color:black;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-edge-10{stroke:hsl(210, 100%, 76.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .edge-depth-10{stroke-width:-16;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-10 line{stroke:hsl(30, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled circle,#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:lightgray;}#mermaid-svg-nDkeNHnNhpxhnKcr .disabled text{fill:#efefef;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-root rect,#mermaid-svg-nDkeNHnNhpxhnKcr .section-root path,#mermaid-svg-nDkeNHnNhpxhnKcr .section-root circle,#mermaid-svg-nDkeNHnNhpxhnKcr .section-root polygon{fill:hsl(240, 100%, 46.2745098039%);}#mermaid-svg-nDkeNHnNhpxhnKcr .section-root text{fill:#ffffff;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-root span{color:#ffffff;}#mermaid-svg-nDkeNHnNhpxhnKcr .section-2 span{color:#ffffff;}#mermaid-svg-nDkeNHnNhpxhnKcr .icon-container{height:100%;display:flex;justify-content:center;align-items:center;}#mermaid-svg-nDkeNHnNhpxhnKcr .edge{fill:none;}#mermaid-svg-nDkeNHnNhpxhnKcr .mindmap-node-label{dy:1em;alignment-baseline:middle;text-anchor:middle;dominant-baseline:middle;text-align:center;}#mermaid-svg-nDkeNHnNhpxhnKcr :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

HAL仓库

一线厂商

hal_nordic

hal_stm32

hal_nxp

hal_espressif

二线厂商

hal_silabs

hal_intel

hal_atmel

hal_microchip

其他厂商

hal_renesas

hal_infineon

hal_ti

hal_ambiq

RISC-V/开源

hal_rpi_pico

hal_quicklogic

hal_openisa

小众厂商

hal_nuvoton

hal_wch

hal_bouffalolab

2.3 协议栈与通信库(12个)

仓库名功能GitHub链接
hostap WiFi Host AP和Supplicant hostap
openthread Thread网络协议栈 openthread
littlefs 嵌入式文件系统 littlefs
fatfs FAT文件系统 fatfs
loramac-node LoRaWAN协议栈 loramac-node
lora-basics-modem LoRa基础调制解调器 lora-basics-modem
liblc3 LC3音频编解码器 liblc3
libsbc SBC蓝牙音频编解码器 libsbc
libmctp MCTP总线协议库 libmctp
libmetal 金属裸机抽象层 libmetal
open-amp 异步消息传递 open-amp
nrf_wifi Nordic WiFi驱动 nrf_wifi

2.4 安全与加密库(6个)

仓库名功能GitHub链接
mbedtls TLS/DTLS加密库 mbedtls
trusted-firmware-m ARM TF-M安全框架 trusted-firmware-m
trusted-firmware-a ARM TF-A安全启动 trusted-firmware-a
tf-psa-crypto PSA加密API实现 tf-psa-crypto
psa-arch-tests PSA架构测试 psa-arch-tests
mldsa-native ML-DSA签名算法 mldsa-native

2.5 引导加载与OTA(3个)

仓库名功能GitHub链接
mcuboot 安全引导加载器 mcuboot
tf-m-tests TF-M测试套件 tf-m-tests

2.6 工具类仓库(14个)

仓库名功能GitHub链接
picolibc 轻量级C库 picolibc
acpica ACPI解析器 acpica
edtt 设备测试工具 edtt
dhara NAND Flash日志文件系统 dhara
nanopb Protocol Buffers实现 nanopb
zcbor CBOR编码解码器 zcbor
lvgl 图形库 lvgl
mipi-sys-t MIPI系统追踪 mipi-sys-t
net-tools 网络调试工具 net-tools
percepio 实时追踪工具 percepio
segger Segger RTT调试 segger
uoscore-uedhoc OSCORE和EDHOC协议 uoscore-uedhoc
nrf_hw_models Nordic硬件模型 nrf_hw_models

三、Inactive/Optional Projects(可选项目)

这些项目默认不下载,需要手动启用:

仓库名功能GitHub链接
chre Context Hub运行时环境 chre
tflite-micro TensorFlow Lite微控制器版 tflite-micro
zephyr-lang-rust Rust语言支持 zephyr-lang-rust

3.1 BabbleSim相关(12个)

BabbleSim是蓝牙协议仿真平台,包含以下组件:

仓库名功能GitHub链接
babblesim_base 仿真基础组件 babblesim_base
bsim 主仿真器 bsim
babblesim_ext_2G4_channel_NtNcable 2.4G频道建模 链接
babblesim_ext_2G4_channel_multiatt 多天线建模 链接
babblesim_ext_2G4_device_WLAN_actmod WLAN设备模型 链接
babblesim_ext_2G4_device_burst_interferer 干扰器模型 链接
babblesim_ext_2G4_device_playback 回放设备模型 链接
babblesim_ext_2G4_libPhyComv1 物理层组件 链接
babblesim_ext_2G4_modem_BLE_simple BLE简单调制解调器 链接
babblesim_ext_2G4_modem_magic Magic调制解调器 链接
babblesim_ext_2G4_phy_v1 物理层v1 链接
babblesim_ext_libCryptov1 加密库v1 链接

四、External Projects(外部项目)

外部项目不在默认Manifest中,需要自行配置引入:

项目名功能用途
arduino-core-api Arduino核心API 兼容Arduino生态
cannectivity USB转CAN适配器固件 CAN通信
canopennode CANopen协议栈 工业CAN总线
clutgen 颜色查找表生成器 图形处理
dtsh 设备树Shell 设备树调试
edge-impulse Edge Impulse SDK 边缘AI
emlearn 机器学习库 嵌入式ML
esp-serial-flasher ESP串口烧录 ESP32烧录
executorch PyTorch边缘推理 深度学习
greybus Google模块化项目协议 模块互连
grvl 格雷戈尔视觉库 计算机视觉
libcsp CubeSat空间协议 卫星通信
libmpix 多项式图像处理 图像处理
luDLC LU分解控制器 线性代数
lz4 极速压缩 数据压缩
memfault-firmware-sdk 远程诊断SDK 固件诊断
mender-mcu Mender OTA客户端 固件更新
requests HTTP客户端 网络请求
thrift RPC框架 远程调用
wolfmqtt MQTT客户端 物联网通信
wolfssh SSH客户端 安全远程
wolfssl SSL/TLS库 安全通信
wolftpm TPM库 可信计算
xedge EdgeX支持 边缘计算
zenoh-pico Zero-Overhead网络 物联网协议
zephelin Zelphel温度传感器 传感器驱动
zscilib Zephyr科学计算库 科学计算
zview 示波器视图 波形显示

五、子仓库依赖关系

5.1 架构依赖图

#mermaid-svg-8NUXOm10byutkCmd{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-8NUXOm10byutkCmd .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-8NUXOm10byutkCmd .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-8NUXOm10byutkCmd .error-icon{fill:#552222;}#mermaid-svg-8NUXOm10byutkCmd .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-8NUXOm10byutkCmd .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-8NUXOm10byutkCmd .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-8NUXOm10byutkCmd .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-8NUXOm10byutkCmd .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-8NUXOm10byutkCmd .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-8NUXOm10byutkCmd .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-8NUXOm10byutkCmd .marker{fill:#333333;stroke:#333333;}#mermaid-svg-8NUXOm10byutkCmd .marker.cross{stroke:#333333;}#mermaid-svg-8NUXOm10byutkCmd svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-8NUXOm10byutkCmd p{margin:0;}#mermaid-svg-8NUXOm10byutkCmd .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-8NUXOm10byutkCmd .cluster-label text{fill:#333;}#mermaid-svg-8NUXOm10byutkCmd .cluster-label span{color:#333;}#mermaid-svg-8NUXOm10byutkCmd .cluster-label span p{background-color:transparent;}#mermaid-svg-8NUXOm10byutkCmd .label text,#mermaid-svg-8NUXOm10byutkCmd span{fill:#333;color:#333;}#mermaid-svg-8NUXOm10byutkCmd .node rect,#mermaid-svg-8NUXOm10byutkCmd .node circle,#mermaid-svg-8NUXOm10byutkCmd .node ellipse,#mermaid-svg-8NUXOm10byutkCmd .node polygon,#mermaid-svg-8NUXOm10byutkCmd .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-8NUXOm10byutkCmd .rough-node .label text,#mermaid-svg-8NUXOm10byutkCmd .node .label text,#mermaid-svg-8NUXOm10byutkCmd .image-shape .label,#mermaid-svg-8NUXOm10byutkCmd .icon-shape .label{text-anchor:middle;}#mermaid-svg-8NUXOm10byutkCmd .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-8NUXOm10byutkCmd .rough-node .label,#mermaid-svg-8NUXOm10byutkCmd .node .label,#mermaid-svg-8NUXOm10byutkCmd .image-shape .label,#mermaid-svg-8NUXOm10byutkCmd .icon-shape .label{text-align:center;}#mermaid-svg-8NUXOm10byutkCmd .node.clickable{cursor:pointer;}#mermaid-svg-8NUXOm10byutkCmd .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-8NUXOm10byutkCmd .arrowheadPath{fill:#333333;}#mermaid-svg-8NUXOm10byutkCmd .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-8NUXOm10byutkCmd .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-8NUXOm10byutkCmd .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-8NUXOm10byutkCmd .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-8NUXOm10byutkCmd .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-8NUXOm10byutkCmd .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-8NUXOm10byutkCmd .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-8NUXOm10byutkCmd .cluster text{fill:#333;}#mermaid-svg-8NUXOm10byutkCmd .cluster span{color:#333;}#mermaid-svg-8NUXOm10byutkCmd div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-8NUXOm10byutkCmd .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-8NUXOm10byutkCmd rect.text{fill:none;stroke-width:0;}#mermaid-svg-8NUXOm10byutkCmd .icon-shape,#mermaid-svg-8NUXOm10byutkCmd .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-8NUXOm10byutkCmd .icon-shape p,#mermaid-svg-8NUXOm10byutkCmd .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-8NUXOm10byutkCmd .icon-shape .label rect,#mermaid-svg-8NUXOm10byutkCmd .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-8NUXOm10byutkCmd .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-8NUXOm10byutkCmd .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-8NUXOm10byutkCmd :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

zephyr核心

HAL仓库

协议栈库

安全库

hal_nordic

hal_stm32

hal_espressif

hostap

openthread

littlefs/fatfs

mbedtls

trusted-firmware-m

nrf_wifi

5.2 典型开发场景依赖

场景必需仓库可选仓库
QEMU测试 zephyr
Nordic nRF52 zephyr, hal_nordic, cmsis mcuboot
STM32开发 zephyr, hal_stm32, cmsis openocd
ESP32开发 zephyr, hal_espressif esp-idf
BLE应用 zephyr, hal_xxx openthread
WiFi应用 zephyr, hal_espressif/hostap mbedtls
安全产品 zephyr, mbedtls, tf-psa-crypto trusted-firmware-m

六、按需下载配置方法

6.1 禁用特定HAL

Zephyr提供了方便的命令来禁用不需要的HAL模块:

# 禁用指定HAL(示例:禁用STM32 HAL)
west config manifest.project-filter — -hal_stm32
west update

# 禁用多个HAL
west config manifest.project-filter — -hal_stm32 -hal_nxp -hal_espressif
west update

6.2 启用可选模块

# 启用TensorFlow Lite Micro
west config manifest.project-filter — +tflite-micro
west update

# 启用BabbleSim(蓝牙仿真)
west config manifest.project-filter — +babblesim_base +bsim
west update

6.3 自定义Manifest文件

创建精简的Manifest文件:

# my-manifest.yml
manifest:
remotes:
name: zephyr
url-base: https://github.com/zephyrprojectrtos

projects:
# 核心仓库(必须)
name: zephyr
url: https://github.com/zephyrprojectrtos/zephyr
path: zephyr
revision: main
clone-depth: 1

# 只添加需要的HAL
name: hal_nordic
url: https://github.com/zephyrprojectrtos/hal_nordic
path: modules/hal/nordic
revision: main
clone-depth: 1

# 只添加需要的库
name: mbedtls
url: https://github.com/zephyrprojectrtos/mbedtls
path: modules/lib/mbedtls
revision: main
clone-depth: 1

# CMSIS支持
name: cmsis
url: https://github.com/zephyrprojectrtos/cmsis
path: modules/hal/cmsis
revision: main
clone-depth: 1

6.4 使用本地Manifest扩展

# 创建本地Manifest目录
mkdir -p ~/zephyrproject/.west/local

在.west/local/目录中添加自定义YAML文件:

# .west/local/extra-modules.yml
manifest:
projects:
# 只添加Nordic支持
name: hal_nordic
url: https://github.com/zephyrprojectrtos/hal_nordic
path: modules/hal/nordic
revision: main

# 添加LVGL图形库
name: lvgl
url: https://github.com/zephyrprojectrtos/lvgl
path: modules/lib/lvgl
revision: main

West会自动合并所有Manifest文件。


七、实用配置模板

7.1 最小化QEMU开发

# minimal-qemu.yml
manifest:
remotes:
name: zephyr
url-base: https://github.com/zephyrprojectrtos

projects:
name: zephyr
url: https://github.com/zephyrprojectrtos/zephyr
path: zephyr
revision: main
clone-depth: 1

7.2 Nordic BLE开发

# nordic-ble.yml
manifest:
remotes:
name: zephyr
url-base: https://github.com/zephyrprojectrtos
name: nordic
url-base: https://github.com/nrfconnect

projects:
name: zephyr
url: https://github.com/zephyrprojectrtos/zephyr
path: zephyr
revision: main
clone-depth: 1

name: hal_nordic
url: https://github.com/nrfconnect/sdkhal_nordic
path: modules/hal/nordic
revision: main
clone-depth: 1

name: cmsis
url: https://github.com/zephyrprojectrtos/cmsis
path: modules/hal/cmsis
revision: main
clone-depth: 1

name: mcuboot
url: https://github.com/mcutools/mcuboot
path: bootloader/mcuboot
revision: main
clone-depth: 1

7.3 STM32开发

# stm32-dev.yml
manifest:
remotes:
name: zephyr
url-base: https://github.com/zephyrprojectrtos

projects:
name: zephyr
url: https://github.com/zephyrprojectrtos/zephyr
path: zephyr
revision: main
clone-depth: 1

name: hal_stm32
url: https://github.com/zephyrprojectrtos/hal_stm32
path: modules/hal/stm32
revision: main
clone-depth: 1

name: cmsis
url: https://github.com/zephyrprojectrtos/cmsis
path: modules/hal/cmsis
revision: main
clone-depth: 1

name: littlefs
url: https://github.com/zephyrprojectrtos/littlefs
path: modules/fs/littlefs
revision: main
clone-depth: 1

7.4 ESP32 WiFi开发

# esp32-wifi.yml
manifest:
remotes:
name: zephyr
url-base: https://github.com/zephyrprojectrtos
name: espressif
url-base: https://github.com/espressif

projects:
name: zephyr
url: https://github.com/zephyrprojectrtos/zephyr
path: zephyr
revision: main
clone-depth: 1

name: hal_espressif
url: https://github.com/zephyrprojectrtos/hal_espressif
path: modules/hal/espressif
revision: main
clone-depth: 1

name: mbedtls
url: https://github.com/zephyrprojectrtos/mbedtls
path: modules/lib/mbedtls
revision: main
clone-depth: 1

name: hostap
url: https://github.com/zephyrprojectrtos/hostap
path: modules/lib/hostap
revision: main
clone-depth: 1

7.5 安全应用开发

# secure-app.yml
manifest:
remotes:
name: zephyr
url-base: https://github.com/zephyrprojectrtos

projects:
name: zephyr
url: https://github.com/zephyrprojectrtos/zephyr
path: zephyr
revision: main
clone-depth: 1

name: mbedtls
url: https://github.com/zephyrprojectrtos/mbedtls
path: modules/lib/mbedtls
revision: main
clone-depth: 1

name: trustedfirmwarem
url: https://github.com/zephyrprojectrtos/trustedfirmwarem
path: modules/tee/tfm/trustedfirmwarem
revision: main
clone-depth: 1

name: tfpsacrypto
url: https://github.com/zephyrprojectrtos/tfpsacrypto
path: modules/tee/tfm/tfpsacrypto
revision: main
clone-depth: 1

name: mcuboot
url: https://github.com/mcutools/mcuboot
path: bootloader/mcuboot
revision: main
clone-depth: 1


八、管理与维护

8.1 查看仓库状态

# 列出所有已配置的仓库
west list

# 查看Manifest内容
west manifest –freeze

# 检查仓库更新状态
west update –status

8.2 更新策略

策略命令说明
完整更新 west update 更新所有仓库
选择性更新 west update hal_nordic 只更新指定仓库
禁用过滤 west config manifest.project-filter — -all +hal_nordic 只保留指定仓库

8.3 仓库大小参考

仓库类型估计大小(MB)
zephyr核心 500
完整HAL集合 2000+
mbedtls 50
littlefs 5
openthread 200
lvgl 30

九、总结

通过本文的详细介绍,相信您对Zephyr项目的子仓库架构有了全面的了解:

类别数量说明
HAL仓库 28个 支持各种芯片厂商的硬件抽象层
协议栈库 12个 WiFi、BLE、LoRa等通信协议
安全库 6个 TLS、TF-M等安全组件
工具库 14个 文件系统、图形库等工具
可选模块 16个 仿真、AI等可选功能
外部项目 28个 社区维护的扩展组件

最佳实践建议:

  • 按需下载:只安装开发所需的仓库
  • 善用过滤:使用manifest.project-filter排除不需要的HAL
  • 浅克隆:使用clone-depth: 1减少下载量
  • 版本锁定:使用固定版本确保构建可重现
  • 合理的仓库管理不仅能节省磁盘空间,还能加快环境搭建速度,提高开发效率。


    参考资料:

    • Zephyr官方West Projects文档
    • Zephyr官方GitHub仓库
    • Zephyr模块系统文档
    • West工具文档
    赞(0)
    未经允许不得转载:171主机测评 » Zephyr项目子仓库完整详解
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址