This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Mailbox guide example

#include <stdio.h>                    /* standard I/O .h-file                */
#include <stdlib.h>                    /* standard I/O .h-file                */
#include <ctype.h>                    /* character functions                 */
#include <string.h>                   /* string and memory functions         */
#include <AT91SAM7X256.H>             /* AT91SAM7X256 definitions           */
#include <lib_AT91SAM7X256.h>
#include <RTL.h>                      /* RTX kernel functions & defines      */



os_mbx_declare (MsgBox, 16);                /* Declare an RTX mailbox */
U32 mpool[16*(2*sizeof(U32))/4 + 3];        /* Reserve a memory for 16 messages */

void rec_task (void) __task;

void send_task (void) __task {
   /* This task will send a message. */
   U32 *mptr;

   os_tsk_create (rec_task, 0);
   os_mbx_init (MsgBox, sizeof(MsgBox));
   mptr = _alloc_box (mpool);               /* Allocate a memory for the message */
   mptr[0] = 0x3215fedc;                    /* Set the message content. */
   mptr[1] = 0x00000015;
   os_mbx_send (MsgBox, mptr, 0xffff);      /* Send a message to a 'MsgBox' */
   os_tsk_delete_self ();
}

void rec_task (void) __task {
   /* This task will receive a message. */
   U32 *rptr, rec_val[2];

   os_mbx_wait (MsgBox, &rptr, 0xffff);     /* Wait for the message to arrive. */
   rec_val[0] = rptr[0];                    /* Store the content to 'rec_val' */
   rec_val[1] = rptr[1];
   _free_box (mpool, rptr);                 /* Release the memory block */
   os_tsk_delete_self ();
}

void main (void) {
   _init_box (mpool, sizeof(mpool), sizeof(U32));
   os_sys_init(send_task);
}

And there's error: #167: argument of type "U32 **" is incompatible with parameter of type "void **" .. and this is example from the guide. What I'm making wrong? Please help. Thx

0