无线程运行

某些应用程序不需要线程支持:

  • 引导加载程序

  • 简单的事件驱动应用程序

  • 用于演示核心功能的示例

将 CONFIG_MULTITHREADING 设置为 n 可以禁用线程支持。由于此配置会显著影响 Zephyr 的功能,且相关测试有限,因此能够正常工作的功能受到一定限制。

预期可以正常工作的功能

禁用 CONFIG_MULTITHREADING 时,以下核心功能应能正常工作:

上述预期会影响其他功能的选择;例如,不能将 CONFIG_SYS_CLOCK_EXISTS 设置为 n。

无法保证正常工作的功能

禁用 CONFIG_MULTITHREADING 时无法工作的功能包括大多数内核 API:

无线程支持时的子系统行为

以下各节列出禁用 CONFIG_MULTITHREADING 时预期仍能提供部分功能的驱动程序和功能子系统。未列出的子系统不应被认为能够正常工作。

所列子系统中的某些现有驱动程序在禁用线程时无法工作,但它们因所属子系统而处于支持范围内,或者具有足够的独立性,使得在特定平台上支持它们只需很小的改动。对于原本未实现无线程运行的现有功能,将考虑接受增加此类支持的增强改动。

Flash

所有 SoC 闪存外设驱动程序的 Flash 预期都能正常工作。通过总线访问的设备(例如串行存储器)可能不受支持。

此处将列出受支持驱动程序的列表或表格

GPIO

所有 SoC GPIO 外设驱动程序的 通用输入/输出(GPIO) 预期都能正常工作。通过总线访问的设备(例如 GPIO 扩展器)可能不受支持。

此处将列出受支持驱动程序的列表或表格

UART

所有 SoC UART 外设驱动程序预期都能支持 通用异步收发器(UART) 的一部分功能。

此处将列出受支持驱动程序的列表或表格,包括支持的 API 选项