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个)
| 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
| 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仓库
| 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个)
| 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个)
| 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个)
| mcuboot | 安全引导加载器 | mcuboot |
| tf-m-tests | TF-M测试套件 | tf-m-tests |
2.6 工具类仓库(14个)
| 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(可选项目)
这些项目默认不下载,需要手动启用:
| chre | Context Hub运行时环境 | chre |
| tflite-micro | TensorFlow Lite微控制器版 | tflite-micro |
| zephyr-lang-rust | Rust语言支持 | zephyr-lang-rust |
3.1 BabbleSim相关(12个)
BabbleSim是蓝牙协议仿真平台,包含以下组件:
| 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/zephyrproject–rtos
projects:
# 核心仓库(必须)
– name: zephyr
url: https://github.com/zephyrproject–rtos/zephyr
path: zephyr
revision: main
clone-depth: 1
# 只添加需要的HAL
– name: hal_nordic
url: https://github.com/zephyrproject–rtos/hal_nordic
path: modules/hal/nordic
revision: main
clone-depth: 1
# 只添加需要的库
– name: mbedtls
url: https://github.com/zephyrproject–rtos/mbedtls
path: modules/lib/mbedtls
revision: main
clone-depth: 1
# CMSIS支持
– name: cmsis
url: https://github.com/zephyrproject–rtos/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/zephyrproject–rtos/hal_nordic
path: modules/hal/nordic
revision: main
# 添加LVGL图形库
– name: lvgl
url: https://github.com/zephyrproject–rtos/lvgl
path: modules/lib/lvgl
revision: main
West会自动合并所有Manifest文件。
七、实用配置模板
7.1 最小化QEMU开发
# minimal-qemu.yml
manifest:
remotes:
– name: zephyr
url-base: https://github.com/zephyrproject–rtos
projects:
– name: zephyr
url: https://github.com/zephyrproject–rtos/zephyr
path: zephyr
revision: main
clone-depth: 1
7.2 Nordic BLE开发
# nordic-ble.yml
manifest:
remotes:
– name: zephyr
url-base: https://github.com/zephyrproject–rtos
– name: nordic
url-base: https://github.com/nrfconnect
projects:
– name: zephyr
url: https://github.com/zephyrproject–rtos/zephyr
path: zephyr
revision: main
clone-depth: 1
– name: hal_nordic
url: https://github.com/nrfconnect/sdk–hal_nordic
path: modules/hal/nordic
revision: main
clone-depth: 1
– name: cmsis
url: https://github.com/zephyrproject–rtos/cmsis
path: modules/hal/cmsis
revision: main
clone-depth: 1
– name: mcuboot
url: https://github.com/mcu–tools/mcuboot
path: bootloader/mcuboot
revision: main
clone-depth: 1
7.3 STM32开发
# stm32-dev.yml
manifest:
remotes:
– name: zephyr
url-base: https://github.com/zephyrproject–rtos
projects:
– name: zephyr
url: https://github.com/zephyrproject–rtos/zephyr
path: zephyr
revision: main
clone-depth: 1
– name: hal_stm32
url: https://github.com/zephyrproject–rtos/hal_stm32
path: modules/hal/stm32
revision: main
clone-depth: 1
– name: cmsis
url: https://github.com/zephyrproject–rtos/cmsis
path: modules/hal/cmsis
revision: main
clone-depth: 1
– name: littlefs
url: https://github.com/zephyrproject–rtos/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/zephyrproject–rtos
– name: espressif
url-base: https://github.com/espressif
projects:
– name: zephyr
url: https://github.com/zephyrproject–rtos/zephyr
path: zephyr
revision: main
clone-depth: 1
– name: hal_espressif
url: https://github.com/zephyrproject–rtos/hal_espressif
path: modules/hal/espressif
revision: main
clone-depth: 1
– name: mbedtls
url: https://github.com/zephyrproject–rtos/mbedtls
path: modules/lib/mbedtls
revision: main
clone-depth: 1
– name: hostap
url: https://github.com/zephyrproject–rtos/hostap
path: modules/lib/hostap
revision: main
clone-depth: 1
7.5 安全应用开发
# secure-app.yml
manifest:
remotes:
– name: zephyr
url-base: https://github.com/zephyrproject–rtos
projects:
– name: zephyr
url: https://github.com/zephyrproject–rtos/zephyr
path: zephyr
revision: main
clone-depth: 1
– name: mbedtls
url: https://github.com/zephyrproject–rtos/mbedtls
path: modules/lib/mbedtls
revision: main
clone-depth: 1
– name: trusted–firmware–m
url: https://github.com/zephyrproject–rtos/trusted–firmware–m
path: modules/tee/tf–m/trusted–firmware–m
revision: main
clone-depth: 1
– name: tf–psa–crypto
url: https://github.com/zephyrproject–rtos/tf–psa–crypto
path: modules/tee/tf–m/tf–psa–crypto
revision: main
clone-depth: 1
– name: mcuboot
url: https://github.com/mcu–tools/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 仓库大小参考
| 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个 | 社区维护的扩展组件 |
最佳实践建议:
合理的仓库管理不仅能节省磁盘空间,还能加快环境搭建速度,提高开发效率。
参考资料:
- Zephyr官方West Projects文档
- Zephyr官方GitHub仓库
- Zephyr模块系统文档
- West工具文档
