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.
您好!
我们能否在 HWI/SWI 上下文中使用"std::new "调用来分配存储器?
此致、
Sandhya
感谢您的回答。
但我不明白为什么 HWI/SWI 上下文中不允许使用"std::new"。
我正在使用 TM4C1294KCPDT 控制器并使用 TI-RTOS 2.16版本。 出于项目目的、我想在计时器中创建一个硬件计时器
回调需要分配内存以更新某些缓冲区,同样需要通过 Mailbox_post ()发送。
此内存分配是否会造成任何问题 ?
此致、
Sandhya
Sandhya、
默认情况下、TI-RTOS 提供"malloc"函数。 它调用 HeapMem_alloc (默认情况下再次调用)。 默认情况下、HeapMem 使用信标(实际上是基于信标的门)。 由于"新建"调用"malloc"、您的 Hwi (或 Swi)可以调用具有非零超时(非零超时)的 Semaphore_pend 函数
您可以通过提供不使用门的不同默认堆(例如使用 HeapBuf 或 HeapMultiBuf)来更改 malloc 的行为、但您必须对堆的桶大小有一个好的想法。
您可以在 HeapMem 中使用一个 Hwi 友好型门(例如 GateHwi)、但要意识到这将影响中断延迟、因为 HeapMem 自由译员的内部访问将在禁用中断的情况下完成。
Todd
感谢 Todd 的详细信息。
我想知道从哪里可以获得这些信息,比如 TI-RTOS 的“new ”内部调用 HeapMem_alloc(),
这样我们就可以在将来避免这种使用。
此致、
Sandhya
您好!
我想知道从哪里可以获得这些信息,比如在内部 调用 TI-RTOS 的 HeapMem_alloc()。
此致、
Sandhya
您好、Sandhya、
Todd 目前不在办公室,因此可能会延迟答复。
同时、我建议您查看 TI-RTOS (SYSBIOS) API 文档。
Derrick