Problems using Global message queues to share data between nodes

Diego Mercado diego.mercs at gmail.com
Thu Dec 6 20:20:15 UTC 2018


Hello,
we are using Rtems 4.10 (RCC-1.2.16. RTEMS-4.10, GCC 4.4.6), compiling for
two processor nodes and sharing data using global message queues.
We have no issues when receiving messages if we set the "no wait" option:
rtems_message_queue_receive(rtemsId, data, size, RTEMS_NO_WAIT, 0);

But if we set a wait, for example, of 1 second:
rtems_message_queue_receive(rtemsId, data, size, RTEMS_WAIT, 100);  then
the node that is blocked in the queue reception crashes (stop running)
after several calls to rtems_message_queue_receive. With a shared memory
area of 0x1000 bytes rtems_message_queue_receive can be called 9 times and
the next time it crashes. With 0x2000 bytes: 19 calls and it crash with the
following one. With 0x3000 bytes: 29 calls and then it crashes.

We do not see any errors, program just stop running (the other node runs
correctly).
For local queues we have no problems.
Do you have any idea why this is happening?
Are we missing some configuration for multiprocessing?

thanks in advance
Diego

/* Override default SHM configuration */
shm_config_table BSP_shm_cfgtbl =
{ .base = (void *) 0x40000000, .length = 0x1000 };













Diego Mercado
diego.mercs at gmail.com
+54 294  (15)4507222
+54 9 294 450 7222
San Carlos de Bariloche
Rio Negro
Patagonia Argentina
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20181206/fcdd28da/attachment.html>


More information about the users mailing list