

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 对称多处理 (SMP) 支持
<a name="smp-support"></a>

[FreeRTOS 内核支持 SMP](https://freertos.org/symmetric-multiprocessing-introduction.html)，使 FreeRTOS 的一个内核实例能够在多个相同的处理器内核上调度任务。核心架构必须相同且共享相同的内存。

除了[这些额外的 API](https://freertos.org/symmetric-multiprocessing-introduction.html#smp-specific-apis) 之外，单核与 SMP 版本之间的 FreeRTOS API 基本相同。因此，为 FreeRTOS 单核版本编写的应用程序应使用 SMP 版本进行编译，这样工作量就会很少。但是，可能会存在一些功能问题，因为一些适用于单核应用程序的假设可能不适用于多核应用程序。

一个常见的假设是，当优先级较高的任务正在运行时，优先级较低的任务无法运行。虽然在单核系统上确实如此，但多核系统则不然，因为多个任务可以同时运行。如果应用程序依靠相对任务优先级来提供互斥性，则它可能会在多核环境中观察到意外结果。

另一个常见的假设是 ISR 不能相互或与其他任务同步运行。在多核环境中，情况不再是这样。应用程序编写者在访问任务和 ISR 之间共享的数据时需要确保适当的互斥性。