This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS/TMS320C6747:MEM_alloc 的可重入性

Guru**** 2614265 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/582338/rtos-tms320c6747-reentrancy-of-mem_alloc

器件型号:TMS320C6747

工具/软件:TI-RTOS

MEM_alloc 是否 是可重入函数? 是否有任何建议的替代 API 支持动态存储器分配的可重入性?

如果中断(意外行为)、预期会出现什么伪影?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Sudheer、
    是的、MEM_ALLOC()是可重入的。 它获取锁定、以便在调用任务中断且发生上下文切换时、任何其他任务都将在锁定上阻止。 这来自 DSP/BIOS API 参考指南:

    分配和取消分配存储器的 MEM 函数通过调用 LCK_pend 在内部锁定存储器
    和 LCK_POST 函数。 如果另一个任务已锁定到存储器、则存在上下文切换。 原因
    因此、不能从 SWI 或 HWI 的上下文中调用 MEM_alloc。 MEM_alloc 会检查
    调用它的上下文。 它调用 SYS_ERROR、如果从错误调用、则返回 MEM_ILLEGed
    背景。

    此致、
    Janet