Hello,
why is LPM_SLEEP or LPM_POWERDOWN is commented out?
kernel_init.c:
Hello,
why is LPM_SLEEP or LPM_POWERDOWN is commented out?
kernel_init.c:
Hi Frank!
why is LPM_SLEEP or LPM_POWERDOWN is commented out?
I think it's mostly commented out for debugging. Debugging with power save modes can become really nasty (even printf() debugging).
However, I agree this shouldn't be solved like this. Another case for DEVELHELP, maybe?
Cheers, Oleg
See https://github.com/RIOT-OS/RIOT/issues/2927 It’s not yet been developed fully, those are just place holders. I have proposed to use a more dynamic scheme for the LPM modes.
Best regards, Joakim www.eistec.se
Hi,
DEVELHELP should not be used to change the semantics of things.
Cheers, Ludwig
Hi Ludwig!
DEVELHELP should not be used to change the semantics of things.
Can you elaborate?
Cheers, Oleg
Hi,
DEVELHELP should not be used to change the semantics of things.
Can you elaborate?
The system should behave the same whether develhelp is used or not.
If you do something like
#ifdef DEVELHELP if(input_not_correct) { print("error message"); return ERROR; } #endif
then the application will work correctly (e.g., handle the error) with DEVELHELP and probably crash without. But DEVELHELP is supposed to expose bugs, not work around them. So in this example, the "return ERROR" should be omitted.
Kaspar
Hi!
>> DEVELHELP should not be used to change the semantics of things. > > Can you elaborate? The system should behave the same whether develhelp is used or not.
I would claim that this is impossible. Even a simple puts() already affects the timings, calls peripheral drivers, and may cause interrupts.
then the application will work correctly (e.g., handle the error) with DEVELHELP and probably crash without. But DEVELHELP is supposed to expose bugs, not work around them. So in this example, the "return ERROR" should be omitted.
I would guess that going into LPM_SLEEP instead of LPM_IDLE has a similar effect than calling additional printfs (which basically means that the effect cannot be foreseen in most cases).
Cheers, Oleg
Hi,
Hi Kaspar!
> I would claim that this is impossible. Even a simple puts() already affects > the timings, calls peripheral drivers, and may cause interrupts. "the same" was bad wording. I meant semantically, like Martine initially stated.
I guess you mean Ludwig. I just wanted to point out that going into powerdown mode (but going into *different* powerdown modes) falls into the same category than printing or non printing.
Cheers, Oleg
Hi,
I would claim that this is impossible. Even a simple puts() already affects the timings, calls peripheral drivers, and may cause interrupts.
"the same" was bad wording. I meant semantically, like Martine initially stated.
I guess you mean Ludwig.
Yes, sorry Martine, sorry Ludwig.
I just wanted to point out that going into powerdown mode (but going into *different* powerdown modes) falls into the same category than printing or non printing.
whatever.
Kaspar