corrupt memory / pktbuf when queue size is changed

Hello everyone,

I am trying to send IEEE 802.15.4 frames between two telosb nodes. The code is attached. It works well if I send a single packet, but not if I send 10 packets. The output I get is:

2016-10-27 09:33:50,232 - INFO # Packet(0x1cbe) #0: hallo? 2016-10-27 09:33:50,263 - INFO # Packet(0x1db6) #7: hallo? 2016-10-27 09:33:50,293 - INFO # Packet(0x1e02) #8: hallo? 2016-10-27 09:33:50,320 - INFO # Packet(0x1db6) #62:

You can see, that the 4th packet is corrupt. When I change the RCV_QUEUE_SIZE to 5 the output changes to:

2016-10-27 09:35:33,096 - INFO # Packet(0x1c96) #0: hallo? 2016-10-27 09:35:33,127 - INFO # Packet(0x1d2e) #4: hallo? 2016-10-27 09:35:33,155 - INFO # Packet(0x1d2e) #132:

When I change the RCV_QUEUE_SIZE to 8, I magically receive the packets. And this bug does not occur!

Can anyone tell me why this happens? Do I need to change some size, stack size, whatsoever?

Best Regards, Robert

code.tar.gz (2.37 KB)

Hi,

Oh ... thanks a lot! I was using [1] as a basic example and just assigned 10 to Q_SZ - as there was no complete example.

[1] http://riot-os.org/api/group__net__gnrc.html

Best Regards, Robert