<div dir="ltr">Hi,<div>Yes, there is a call to rtems_task_wake_after in the code; but in that case state should have been STATES_DELAYING, right ?</div><div>At another run, I got </div><div>state = 0x0 = STATES_READY</div><div>Wait.flags = 0x104 = THREAD_WAIT_CLASS_EVENT | THREAD_WAIT_STATE_READY_AGAIN</div><div>Why would the state be ready in _Event_Seize ? could that value be corrupt ?</div><div><br></div><div>I tried with the stack checker as well, but I didn't see any out of band values.</div><div><br></div><div>Catalin</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Oct 11, 2018 at 11:17 AM Sebastian Huber <<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-brains.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 11/10/2018 09:52, Catalin Demergian wrote:<br>
> Hi,<br>
> I don't use malloc myself in the code I added, but I see it is used a <br>
> lot in the networking code.<br>
><br>
> I printed state and Wait.flags for SCrx task<br>
> * when all is ok *<br>
> in _Event_Seize, after _Thread_Dispatch_enable<br>
> state = 0x100 = STATES_WAITING_FOR_EVENT<br>
> Wait.flags = 0x102 = THREAD_WAIT_CLASS_EVENT | THREAD_WAIT_STATE_BLOCKED<br>
> in _Event_Surrender at the beginning<br>
> state = 0x100<br>
> Wait.flags = 0x102<br>
><br>
> * when SCrx is not scheduled any more *<br>
> in _Event_Seize, after _Thread_Dispatch_enable<br>
> state = 0x0 = STATES_READY<br>
> Wait.flags = 0x02 = THREAD_WAIT_STATE_BLOCKED<br>
> in _Event_Surrender at the beginning<br>
> state = 0x0<br>
> Wait.flags = 0x02<br>
><br>
> do these look like valid values ? I mean in _Event_Seize the state <br>
> should have been blocked, right ?<br>
> can these values be caused by a corruption ?<br>
<br>
A thread wait flags value of 0x02 indicates that this thread used <br>
rtems_task_wake_after() recently (at least in RTEMS 5, but very likely <br>
also in RTEMS 4.11.2).<br>
<br>
><br>
> -> Did you check the task stacks with the stack checker?<br>
> I'm afraid I don't know how to use it in RTEMS. any link to <br>
> information on how to detect/analyze a data coruption in RTEMS can be <br>
> useful.<br>
<br>
It is a configuration option<br>
<br>
#define CONFIGURE_STACK_CHECKER_ENABLED<br>
<br>
In the RTEMS shell you can obtain the task stack information with the <br>
"stackuse" command.<br>
<br>
-- <br>
Sebastian Huber, embedded brains GmbH<br>
<br>
Address : Dornierstr. 4, D-82178 Puchheim, Germany<br>
Phone   : +49 89 189 47 41-16<br>
Fax     : +49 89 189 47 41-09<br>
E-Mail  : <a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brains.de</a><br>
PGP     : Public key available on request.<br>
<br>
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.<br>
<br>
</blockquote></div>