一、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总线服务 |