Concepts
Asymmetric multiprocessing 非对称多核 (AMP) 和 symmetric multiprocessing 对称多核 (SMP)的区别。
AMP 是一种编程范式,它使用多个内核或处理器同时运行多个任务。 它需要一个核心/处理器作为运行操作系统 (OS) 的主核。 它将工作发送到其他核,称为辅核。 请注意,这些内核可能是也可能不是相同的架构。 事实上,您可以在不同的计算机上设置 AMP 配置。
SMP 也是一种范式,它允许多线程程序在多个内核上运行。 但是,在 SMP 中,每个内核运行操作系统的副本。 每个核中的调度程序独立运行,从共享列表中选择运行任务。 SMP 要求内核紧密耦合,通常共享 RAM 和其他资源。 因此,您通常会发现 SMP 构建在同一架构的多个内核之上。
ESP-IDF 是对 FreeRTOS 的修改,配置用于 SMP 操作。 ESP32 使用 Xtensa LX6 处理器,您遇到的大多数变体都包含两个内核。
ESP-IDF 操作系统支持将任务固定到内核,这意味着您可以分配其中一个内核来运行特定任务。 它还支持“无关联”的任务,这意味着该任务可以在任一核心上运行。
ESP32 中的内核标记为“Core 0”和“Core 1”。 Core 0 被称为“Protocol Core”或“PRO CPU”。 在默认的 ESP32 应用程序中,与协议相关的任务(如 WiFi 和蓝牙)分配给此内核。 Core 1 被称为“Application Core”或“APP CPU”,负责运行用户应用程序。</