# 系统

[English]

## FreeRTOS

### 升级 IDF FreeRTOS

IDF FreeRTOS 内核（通过 FreeRTOS 实现的双核 SMP ）已升级，现基于 Vanilla FreeRTOS v10.5.1。伴随升级，IDF FreeRTOS 的设计和实现也发生了重大变化。因此，用户应注意以下关于内核行为和 API 的变化：

- 通过 CONFIG_FREERTOS_UNICORE 选项启用单核模式时，内核行为将与 Vanilla FreeRTOS 完全相同（详见 单核模式）。

- 对于由 IDF FreeRTOS 添加的与 SMP 相关的 API，xCoreID 参数的检查将更加严格。为 `xCoreID` 参数提供超出范围的值现在将触发断言。

- 为了保证命名一致性，以下与 SMP 相关的 API 现已被弃用并已重新更名：

  > - 弃用 `xTaskGetAffinity()`，更名为 `xTaskGetCoreID()`。

  > - 弃用 `xTaskGetIdleTaskHandleForCPU()`，更名为 `xTaskGetIdleTaskHandleForCore()`。

  > - 弃用 `xTaskGetCurrentTaskHandleForCPU()`，更名为 `xTaskGetCurrentTaskHandleForCore()`。

### 任务快照

由于缺乏从用户代码中使用该 API 的实际方法（必须先暂停调度器才能调用该 API），任务快照 API 已被设置为私有。

## Xtensa

几个 Xtensa 头文件的旧版包含路径已被弃用：

- 弃用 `#include "freertos/xtensa_api.h"`，请改用 `#include "xtensa_api.h"`。

- 弃用 `#include "freertos/xtensa_context.h"`，请改用 `#include "xtensa_context.h"`。

- 弃用 `#include "freertos/xtensa_timer.h"`，请改用 `#include "xtensa_timer.h"`。

## 紧急处理程序行为

在配置选项 CONFIG_ESP_SYSTEM_PANIC 中，是否可选择 `CONFIG_ESP_SYSTEM_PANIC_GDBSTUB` 取决于是否在构建中包含了 `esp_gdbstub` 组件。使用 `set(COMPONENTS main)` 来缩减这类构建的组件列表时，必须将 `esp_gdbstub` 组件添加到这个组件列表中，以使 `CONFIG_ESP_SYSTEM_PANIC_GDBSTUB` 选项可用。

此文档对您有帮助吗？

- 反馈已收到，谢谢！
- 如果您有其他意见，欢迎填写乐鑫文档反馈表。

- 我们重视您的反馈。
- 您可以填写乐鑫文档反馈表告诉我们如何改进该文档。