zephyr (1)

Zephyr

  • 1.zephyr 简介
    • 1.1zephyr支持的架构
    • 1.2 许可
    • 1.3 特点
      • 1.3.1 大量的内核服务套件
      • 1.3.2 支持BLE 5.0
  • 2.入门指南
  • 3.应用开发
    • 3.1特殊文件类型
      • 3.1.1 CMakeLists.txt
      • 3.1.2 Kconfig
      • 3.1.3 west.yml
      • 3.1.4 arch
      • 3.1.5 soc

1.zephyr 简介

1.1zephyr支持的架构

  1. ARC EM and HS
  2. ARMv6-M, ARMv7-M, and ARMv8-M (Cortex-M)
  3. ARMv7-A and ARMv8-A (Cortex-A, 32- and 64-bit)
  4. ARMv7-R, ARMv8-R (Cortex-R, 32- and 64-bit)
  5. Intel x86 (32- and 64-bit)
  6. NIOS II Gen 2
  7. RISC-V (32- and 64-bit)
  8. SPARC V8
  9. Tensilica Xtensa
    zephyr支持以上等结构,具体可以查询 https://docs.zephyrproject.org/latest/boards/index.html#boards

1.2 许可

Zephyr使用Apache2.0许可证

1.3 特点

1.3.1 大量的内核服务套件

1.多线程服务(Multi-Threading),用于具有可选循环时间切片的 协作、基于优先级、非抢占和抢占线程。包括POSIX pthreads兼容的API支持;
2.中断处理程序编译时注册的 中断handlers;
3.内存分配服务(Memory Allocation Services) 用于动态分配和释放 固定大小或可变大小的内存块;
4.线程间同步服务(Inter-thread Synchronization Services):二进制信号量、计数信号量和互斥信号量(mutex);
5.线程间数据传递服务(Inter-thread Data Passing Services):

1.3.2 支持BLE 5.0

2.入门指南

在Ubuntu、macOS或Windows上设置一个命令行Zephyr开发环境(关于其他Linux发行版的说明在安装Linux主机依赖中讨论)

3.应用开发

3.1特殊文件类型

3.1.1 CMakeLists.txt

CMake构建系统的顶级文件,包含构建Zephyr所需的大量逻辑。

3.1.2 Kconfig

	Kconfig.zephyr,系统配置文件。可以在构建(build)时配置Zephyr内核和子系统,使它们适应特定的应用程序和平台需求。配置是通
过Kconfig处理的,它与Linux内核使用的配置系统相同。其目标是在不更改任何源代码的情况下支持配置。
	配置选项(通常称为符号symbols) 在Kconfig文件中定义,它还指定符号之间的依赖关系,这些依赖关系决定哪些配置是有效的。可以
将符号分组到菜单和子菜单中,以保持交互配置界面的组织。
	Kconfig的输出是一个头文件autoconf.h,其中包含可以在构建时测试的宏。可以不编译未使用的代码以节省空间。下面几节将会解释如
何设置Kconfig配置选项,详细介绍如何在Zephyr项目中使用Kconfig,并提供一些编写Kconfig文件的技巧和最佳实践:

3.1.3 west.yml

West (Zephyr的meta tool)清单,列出了由West命令行工具管理的外部存储库。

3.1.4 arch

特定于体系结构的内核和片上系统(SoC)代码。每个受支持的架构(例如x86和ARM)都有自己的子目录,该子目录包含以下区域的额外子目录:
1)architecture-specific kernel source files (特定架构的内核源码)
2)architecture-specific kernel include files for private APIs  (特定于体系结构的内核包含用于私有api的文件)

3.1.5 soc

你可能感兴趣的:(iot)