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.

[参考译文] CC1310:如何正确使用 Mailbox _create ()和 Mailbox _structure () TI-RTOS?

Guru**** 2481895 points
Other Parts Discussed in Thread: CC1312R, CC1310, SYSBIOS, CC1352P

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1279916/cc1310-how-to-correctly-use-mailbox_create-and-mailbox_construct-ti-rtos

器件型号:CC1310
主题中讨论的其他器件: SYSBIOSCC1352P、CC1312R

您好!

对于以下两个函数中的 msgSize 参数、我感到有点困惑:

Mailbox_Handle Mailbox_create(SizeT msgSize, UInt numMsgs, const Mailbox_Params *params, Error_Block *eb);
// Allocate and initialize a new instance object and return its handle
 
Void Mailbox_construct(Mailbox_Struct *structP, SizeT msgSize, UInt numMsgs, const Mailbox_Params *params, Error_Block *eb);
// Initialize a new instance object inside the provided structure

我想我们应该做以下 的事情来控制预分配内存的邮箱、就像在 前面的一个帖子中一样

typedef struct buff32QElm{
    /* Mailbox header, required for each application mailbox */
    Mailbox_MbxElem     elem;
    /* Application's mailbox */
    buff32 buffer;
}buff32QElm;

/* pre-allocate mail box buffer*/
buff32QElm   rxQBuffer[NUMMSGS];

Mailbox_construct(&rxQStruct, sizeof(buff32QElm), 32, &rxQParams, NULL);

但在手动 TI-RTOS 内核中、我看到如下示例代码:

mbox = Mailbox_create(sizeof(msg), 50, &mboxParams, &eb);

当 sizeof (msg)似乎对应于前一个代码中的 buff32时。 这是否意味着 Mailbox_create()会自动 将 Mailbox_Mbx 添加到每个邮箱消息?

请帮助澄清、提前感谢。

ZL

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

    您好、Zhiyong、

    请参阅此文档: SYS/BIOS (TI-RTOS 内核)用户指南(修订版 V)
    有关邮箱的实现、请看第4.4章。

    此外 、您还可以 在 SDK 中的以下位置找到参考实现:
    $SDK_LOCATION\examples\rtos\CC1310_LAUNCHXL_SysBIOS\mailbox

    此致
    曼努埃尔

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

    您好、Manuel:

    感谢您的快速响应。 我想我引用的代码犯了一个错误。 它应该与以下代码类似:

    Mailbox_construct(&rxQStruct, sizeof(buff32), 32, &rxQParams, NULL);

    我们是否可以按原样将邮箱相关代码迁移到 CC1312R 和 CC1352P 中? 我在  SimpleLink CC13xx CC26xx SDK 中没有看到参考设计(7.10.01.24)。

    此致、

    ZL

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

    您好、ZL:

    由于 CC1312R 和 CC1352P 软件 基于 TI-RTOS 7而不是作为 CC1310的 TI-RTOS 6、因此邮箱代码可能不兼容。

    如果您希望该结构出现在较新的 CC13x2器件上、则需要自行迁移代码。

    此致
    曼努埃尔

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

    你能否提供一个链接、介绍我们应该如何处理邮箱相关代码的迁移? 在本 链接中说明:

    TI-RTOS7内核是传统 SYS/BIOS 内核的定制版本、可作为具有驱动程序、同步和调度工具的实时、抢先式多线程操作系统进行运行。

    链接的页面讨论了 Semaphone、Event 等、但没有讨论邮箱。 这意味着邮箱还没有被执行吗(还吗?) 有哪些优势?

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

    您好、ZL:

    邮箱在 TI-RTOS7中实现

    您还可以查看 SimpleLink 文档: SYS/BIOS (TI-RTOS 内核) v7.x 用户指南中的这一更新用户指南

    此外、在以下位置还可找到关于邮箱功能的更详细的指南: SYS/BIOS:/home/developer/.conan/data/tirtos/7.03.00.10/library-sb/ga/build/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/kernel/tirtos7/packages/ti/sysbios/knl/Mailbox.h 文件参考

    希望这能进一步帮助您将代码从 CC1310移植到 CC13x2器件。

    此致
    曼努埃尔