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:如何在 Hwi 中断函数中使用 Memory_alloc? 我是否可以使用 Task_restore 在中断中调用任务?

Guru**** 2595805 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/671920/rtos-how-use-memory_alloc-in-a-hwi-interrupt-function-and-can-i-use-task_restore-to-invoke-a-task-in-an-interrupt

工具/软件:TI-RTOS

如何在 Hwi 中断函数中使用 Memory_alloc?  我是否可以使用 Task_restore 在中断中调用任务?    谢谢!

BIOS 6.46.5.55 在 TMS28379D   CCS 6.2.0.00050上运行

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

    通常不建议从 Hwi 中分配内存、这是因为持续时间不确定、并且许多堆实现(尤其是作为默认堆的 HeapMem)使用信标进行同步。 如果执行此操作、请确保底层堆实现不分块(例如 HeapBuf)。 查看 SYS/BIOS 存储器示例以了解 HeapBuf 的用法。

    您可以在 Hwi 中使用 Task_restore。 但这不是最常见的用法、因为 Task_disable 会禁用除当前任务外的所有任务。 我不确定"调用任务"是什么意思。 任务的典型设置为
    -信号量上的任务块、并让 Hwi (或时钟模块)布置信号量。
    -任务调用 Task_sleep
    - Mailbox_pend 上的任务块、并且被调用 Mailbox_post 的线程(连同一个消息)解除阻止。

    Todd