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.

[参考译文] CC2538:OSAL消息传输

Guru**** 2553360 points


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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/639223/cc2538-osal-message-transfer

部件号:CC2538

您好,

我正在尝试在任务发送正常但未收到消息之间发送消息,我收到一些未知值,请查看我的代码

kiko_msg *kiko_msg_ptr;
kiko_msg_ptr =(kiko_msg*) osal_msg_alloc(sizeof(kiko_msg_ptr);
如果( kiko_msg_ptr )
{

Kiko_msg_ptr ->子= KIKO_REMOTE_CMD;
kiko_msg_ptr ->msg =105;

OSAL_msg_send( Kiko_Activity_TaskID,(uint8 *)kiko_msg_ptr );
OSAL_msg_deallocate((void *)kiko_msg_ptr );

} 

接收时:

kiko_msg *kiko_msg_ptr;
char Nwk_BuffferNew[64];

IF (事件和SYS_EVENT_MSG)
{
Kiko_msg_PTR =(kiko_msg*) osal_msg_receive( Kiko_Post_TaskID );
char abc[64];
sprintf (abc,"sts=%d,msg=%d\r\n",kiko_msg_ptr->status,kiko_msg_ptr->msg);
HalUART写入( MT_UART_DEFAULT_PORT, abc, strlen(abc));

IF (kiko_msg_ptr ->msg == KIKO_REMOTE_CMD){
HalUARTWrite ( MT_UART_DEFAULT_PORT,"if\r\n", strlen("if\r\n"));
}

开关(kiko_msg_ptr ->msg)
{
案例KIKO_REMOTE_CMD:
HalUARTWrite ( MT_UART_DEFAULT_PORT,"CASE \r\n", strlen("CASE \r\n");
中断;

默认:
中断;
}
OSAL_msg_dealloce((void *)kiko_msg_ptr ); 

接收任务时发送的状态或消息I不匹配。

请告诉我如何在OSAL中将一个任务之间的消息发送到另一个任务

谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Kiko_Activity_TaskID和Kiko_Post_TaskID是否是两个单独的任务? 您似乎正在将消息发送到Kiko_Activity_TaskID并接收到Kiko_Post_TaskID,不确定这是否是您的示例代码中的有意行为。

    osal_msg_send的第一个参数是destination_id,osal_msg_receive的第一个参数是task_id (即,我的任务id),因此,如果您希望从Task1向Task2发送消息,

    任务1将:
    OSAL_msg_send (Task2,msg);

    任务2将:
    MSG = osal_msg_receive (Task2);
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,这是我的错误,我尝试使用不同的任务ID接收。