-
Notifications
You must be signed in to change notification settings - Fork 692
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Busy wait-free TSCH #447
Comments
Some thoughts: this is not difficult to do, if the goal is to reduce the time spent in ISR. If the goal is to save energy - I think that could be difficult, at least on some platforms. I'll talk about CC2650, because I have used it.
|
Yes the first goal here is to reduce time spend in ISR, to remove side effects on other system operations such as serial line or application stuff. Let's try to get this as energy-efficient as possible, and if needed, preserve the busy-wait option through a compile flag. If you take a closer look, CCA check is straightforward (it's a fixed duration), Tx also comes with no energy trade-off. The discussion really is only about Rx. In Rx, there are two busy waits: first for the guard time, second for the packet Rx. Does CC2650 have a way to signal finished reception? If so, it feels we can simply turn off as soon as needed, and not spend any unnecessary time with radio on. If not, I agree we have to waste energy on every packet reception (but save on every idle wake up, where we need the radio on for RxWait anyway, but without busy-wait at least the CPU sleeps). One mitigation strategy could be to, instead of sleeping until the max packet length, just sleep in short periods and wakeup periodically (e.g. 200 usec) to check the status. |
Is the same issue seen on contiki as well? I'm currently experiencing the UART issues on contiki-ng due to TSCH busy waits. Could this problem be solved if I shift my project to contiki? |
Hallow Simon! here i provided first aproach to relax CPU from TSCH busy - it polls only receive now, since radio driver has according API. on cc1350 with polling period 100us it uses about 10% of CPU. In near plan - provide radio-driver with callback requesting API, and this is totaly solve problem of busy-wait radio -requests. |
Currently TSCH has a number of busy waits, resulting in ISR that run up to a few milliseconds. This is obviously undesirable. Places that need fixing:
transmit
busy waits for the whole duration of the TxThe text was updated successfully, but these errors were encountered: