Finally, I found that if I remove the flag DEVELHELP but I add the flag SCHED_TEST_STACK, my app survives the simulated power outages. Then I tried to work without any of these flags in my Makefile and to remove some #ifdef. After a while, I found that removing the #ifdef in files :

- core/thread.c around line "cb->stack_start = stack;"

- core/include/thread.h around line : "char *stack_start;"

was solving my issue.

I'm launching two threads in my app. One with THREAD_CREATE_SLEEPING and one with 0 as flags.

I'm curious to know why this solves my issue and how it affects RIOT ? Does anyone knows ?

On 15.05.19 08:36, Carron Joël wrote:
In the docs, we find :


"Additional code parts such as (extensive) debug output and sanity checks using 
assertions. To activate it set environment variable DEVELHELP=1, or disable explicitly 
with DEVELHELP=0."
https://riot-os.org/api/group__utils.html<https://riot-os.org/api/group__utils.htm>


But, everywhere in RIOT source code, the DEVELHELP is checked with "#ifdef DEVELHELP" or 
"#if defined(DEVELHELP)". So, correct me if I'm wrong, but it shouldn't change anything 
if the DEVELHELP is set to 0, 1 or anything else ? In this case, the doc is wrong ? We really need 
to comment it out as suggested in the Makefiles of examples to remove it. But then it causes my app 
to not restart after simulated power outage.





________________________________
De : users <[email protected]> de la part de Carron Joël 
<[email protected]>
Envoyé : mardi 14 mai 2019 22:42:25
À : [email protected]
Objet : Re: [riot-users] DEVELHELP flag in Makefiles

Thank you for your answer. I've already read the docs but my real question was why do I 
get this "strange" behaviour ? My app works fine with the flag (flashed on over 
50 boards) but without it the app can't start anymore as soon as I unplug the board from 
power and replug it. With the flag I have no issue.

Where can I look for something bad in my code that can explain this difference 
? I looked a bit in the RIOT source code but didn't find anything for the 
moment that can give me an answer.

Envoyé par BlueMail<http://www.bluemail.me/r?b=14874>
Le 14 mai 2019, à 20:38, Bas Stottelaar 
<[email protected]<mailto:[email protected]>> a écrit:
Hi Joel,

It enables additional debug output and sanity checks. You can find more 
information at [1].

Kind regards,
Bas

[1]  https://riot-os.org/api/group__utils.html

Op 14 mei 2019, om 19:40 heeft Joel Carron < 
[email protected]<mailto:[email protected]>> het volgende geschreven:

Hi everyone,

Can someone explain me what this flag in Makefile examples do ?

I just finished an app for a custom board. As my Makefile was based on an 
example, there was still this flag present. As its comment suggests, it's for 
development so I decided to remove it.

After removing it, my application starts normally right after flashing my board 
but as soon as I unplug it from power supply and plug it again, the app doesn't 
start anymore. I flashed the app on a Nucleo-F303RE to get some console output 
but I just get garbage from pyterm. I decided to keep this flag as it works 
flawlessly with it and takes only 4kB more in ROM but it could be great if 
someone knows a little more about it.

What could cause my app on two boards to fail starting without this flag ? In 
my app, I use some DEBUG() macros, I start two threads, do some UDP packets 
exchanges with another boards and that's it.

Best regards

Joel

_______________________________________________
users mailing list
[email protected]<mailto:[email protected]>
https://lists.riot-os.org/mailman/listinfo/users

_______________________________________________
users mailing list
[email protected]
https://lists.riot-os.org/mailman/listinfo/users
_______________________________________________
users mailing list
[email protected]
https://lists.riot-os.org/mailman/listinfo/users
_______________________________________________
users mailing list
[email protected]
https://lists.riot-os.org/mailman/listinfo/users

Reply via email to