anroOfCode / linux-cc2520-driver

A kernel module that will (one day) power the CC2520 802.15.4 radio in Linux.
19 stars 11 forks source link

Transmit Half Stops Working After a While #4

Closed bradjc closed 11 years ago

bradjc commented 11 years ago

I don't really have a better description than the title right now; I'll try to pin down more details as I work with it. Basically I'm running RadioCountToLeds and then going to dinner, and when I get back the pi is till receiving packets but is no longer transmitting. I'm guessing the write() call isn't returning in my send thread.

This could be related to the overloaded packet issue but I'm not sure. I know this isn't a lot to go on but I wanted to let you know just in case it inspired something.

anroOfCode commented 11 years ago

I just pushed a fix that addressed some really really big concurrency bugs.

Try this new code. It needs a little bit of polish, but it's looking really good right now to me. I need to test it some more.

Big fixes include fixing a huge bug in the csma layer (took me literally 10 hours of terrible, kernel-locking debugging to isolate =( ) that prevents it from locking up the entire system when it was attempting to send a packet while the software acknowledgement layer was busy acking a different packet.

I also fixed up some of the rx buffer flush logic that was potentially disastrous, and decoupled the RX chain a little bit.

Overall it should have many fewer lock-ups.

anroOfCode commented 11 years ago

Closing this issue as well. Please reopen if lockups occur.