[riot-users] Radio Interrupt Handler
navneet.pandey at outlook.in
Fri Nov 9 12:19:49 CET 2018
Hello Joakim, thanks for an elaborate explanation, I will check those articles out. Before I do, I have a few more queries.
Could you also point out which module is responsible for radio switch on/off, assuming radio only has a binary mode unlike the CPU.
Is it 'at86rf2xx_netdev' or something else?
Also, is it possible to keep the radio open always for the duration of an experiment? And may be avoid deep sleep mode as well?
And am I correct when I say that 'cortex_sleep(deep)' puts CPU to sleep but doesn't touch the radio (based on what you replied).
Based on some of the modules on which I enabled debugging:
Following was the pattern: PACKET SENT-> TX_Ends -> pm_set_lowest -> Idle -> pm_set_lowest -> RX_Ends -> PACKET RCVD.
I did not understand the part where CPU moved to idle state before going to sleep again. Did I miss any state in the process (probably did not enable debugging)?
I know these are a lot of questions. I really appreciate that you are answering my question in great detail. Thank you.
From: Navneet Pandey <navneet.pandey at outlook.in>
Sent: Thursday, November 8, 2018 1:08 PM
To: users at riot-os.org
Subject: RE: Radio Interrupt Handler
Thank you, the information was really helpful. I was exploring the 'at86rf2xx_netdev.c' file. I noticed something weird. When I enabled debugging all I got was
* To Idle state
* Evt TX_END
* Evt RX_END
By enabling debugging in pm_layered.c and pm.c, I noticed cortex_sleep(deep) was being called when radio was not doing anything. So why am I not seeing any of the following debug statements being printed (or in other words none of the following cases being invoked).
From: Navneet Pandey <navneet.pandey at outlook.in<mailto:navneet.pandey at outlook.in>>
Sent: Monday, November 5, 2018 11:10 AM
To: users at riot-os.org<mailto:users at riot-os.org>
Subject: Radio Interrupt Handler
Could someone please point out the code where radio is switched on/off when sending a MAC/UDP packet.
I am expecting something similar to the following code snippet:
/** Turn the MAC layer on. */
int (* on)(void);
/** Turn the MAC layer off. */
int (* off)(int keep_radio_on);
This code is from Contiki.
I am interested in understanding the time it takes for system to wake up from sleep (dormant mode) to receive packets.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the users