一、Zephyr是什么?
Zephyr 是 Linux 基金会推出的一个适用于物联网的小型可伸缩的实时操作系统,支持多种处理器架构。Zephyr 是安全的、开源的、模块化的以及支持多种连接方式。与华为的liteos很像,也不知道谁抄的谁。
二、官方资料
官方介绍 https://docs.zephyrproject.org/latest/index.html
官方源码 https://github.com/zephyrproject-rtos/zephyr
三、总体架构

四、源码结构介绍
4.1 总体目录
| 序号 | 目录 | 用途 |
| 1 | arch | 包含和硬件体系结构相关的代码,每种平台占一个相应的目录。包括X86、MIPS、ARM、ARM64等CPU体系。 |
| 2 | boards | 板级代码及相关的配置文件 |
| 3 | cmake | 构建 Zephyr 需要额外的构建脚本 |
| 4 | doc | 文档介绍 |
| 5 | drivers | 设备驱动,每个不同的驱动占用一个子目录 |
| 6 | dts | devicetrree 源文件,用于描述特定板子的设备细节,如外设寄存器数量及寄存器地址 |
| 7 | include | 包括所有公共 api 的文件,除了在 lib 下定义的部分 |
| 8 | kernel | 与架构无关的内核代码 |
| 9 | lib | 库代码,包括最小的标准 C 库 |
| 10 | misc | 不属于任何其他顶级目录的杂项代码 |
| 11 | modules | 提供特定芯片系列的一些外设配置选项 |
| 12 | samples | 演示使用 Zephyr 特性的示例应用程序 |
| 13 | scripts | 用于构建和测试 Zephyr 应用程序的各种程序和其他文件 |
| 14 | share | 共享文件夹 |
| 15 | snippets | 代码模板 |
| 16 | soc | SoC 相关代码和配置文件 |
| 17 | submanifests | 对west.yml命令的补充 |
| 18 | subsys | 子系统 |
| 19 | tests | 测试相关 |
4.2 服务目录
| 序号 | 目录 | 用途 |
| 1 | bluetooth | 蓝牙服务 |
| 2 | canbus | CAN总线服务 |
| 3 | console | 控制台服务 |
| 4 | debug | 调试服务 |
| 5 | demand_paging | 虚拟内存管理服务 |
| 6 | dfu | 恢复模式服务 |
| 7 | disk | 磁盘服务 |
| 8 | dsp | dsp计算服务 |
| 9 | emul | 模拟服务 |
| 10 | fb | 显示服务 |
| 11 | fs | 文件系统服务 |
| 12 | input | 输入服务 |
| 13 | ipc | 进程间通许服务 |
| 14 | jwt | jwt认证服务 |
| 15 | logging | 日志管理服务 |
| 16 | lorawan | lorawan协议服务 |
| 17 | mgmt | 更细服务框架 |
| 18 | modbus | modbus服务 |
| 19 | net | 网络服务 |
| 20 | pm | 电源管理服务 |
| 21 | portability | |
| 22 | random | 随机数服务 |
| 23 | rtio | 实时时钟服务 |
| 24 | sd | sd服务 |
| 25 | settings | 设置服务 |
| 26 | shell | 命令行服务 |
| 27 | stats | 统计服务 |
| 28 | storage | 存储服务 |
| 29 | task_wdt | 看门狗服务 |
| 30 | testsuite | 测试讨价服务 |
| 31 | timing | 定时器服务 |
| 32 | tracing | 调试tracing服务 |
| 33 | usb | USB服务 |
| 34 | zbus | Zephyr总线服务 |



















