选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

内核内存分配

聚焦模式
内核内存分配 - FreeRTOS

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

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

每次在创建任务、队列或其他 RTOS 对象时,RTOS 内核都需要 RAM。RAM 可采用以下分配方式:

  • 在编译时静态分配。

  • 由 RTOS API 对象创建函数从 RTOS 堆动态分配。

在动态创建 RTOS 对象时,使用标准 C 库 malloc()free() 函数并不始终恰当,原因如下:

  • 它们在嵌入式系统中可能不可用。

  • 它们占用了宝贵的代码空间。

  • 它们通常不是线程安全的。

  • 它们不是确定性的。

出于这些原因,FreeRTOS 会在其可移动层保留内存分配 API。可移动层位于实施核心 RTOS 功能的源文件外部,因此您可以针对正在开发的实时系统,提供特定于应用程序的适当实施。当 RTOS 内核需要 RAM 时,它会调用 pvPortMalloc(),而不是 malloc()()。在释放 RAM 时,RTOS 内核调用 vPortFree(),而不是 free()

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。