You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have build an stm32 based sensor node that reads environmental sensors and
sends the data over ethernet using a w5500. Unfortunately it starts hanging
after a while.
I am at a loss to what is causing this. I have tried and failed to make a
minimal example. I suspect something might be going wrong with executor. To
check that I added an interrupt task that does nothing except print a message
every second. When the program hangs the interrupt task hangs too.
I can not find where the it hangs, I do know that:
- If I remove the w5500 runner and stack tasks the program works again.
- If I remove one of the UART sensors (sps30 or mhz) the program works
again.
- If I add Timer::after calls here and there it takes longer before it hangs
(up to about 30 minutes)
- Removing a yield statement before the join (that polls the sensors
measuring) makes the code more reliable. (stops it from breaking 11.4
seconds after starting)
To me it sounds like running the w5500 and 2 UARTS together breaks the executor.
Could this be a manifestation of:
Hi all I need some debugging tips.
I have build an stm32 based sensor node that reads environmental sensors and
sends the data over ethernet using a w5500. Unfortunately it starts hanging
after a while.
I am at a loss to what is causing this. I have tried and failed to make a
minimal example. I suspect something might be going wrong with executor. To
check that I added an interrupt task that does nothing except print a message
every second. When the program hangs the interrupt task hangs too.
I can not find where the it hangs, I do know that:
- If I remove the w5500 runner and stack tasks the program works again.
- If I remove one of the UART sensors (sps30 or mhz) the program works
again.
- If I add Timer::after calls here and there it takes longer before it hangs
(up to about 30 minutes)
- Removing a yield statement before the join (that polls the sensors
measuring) makes the code more reliable. (stops it from breaking 11.4
seconds after starting)
To me it sounds like running the w5500 and 2 UARTS together breaks the executor.
Could this be a manifestation of:
I am no embedded engineer and I'am out of my depth here. I would love advise on
how to proceed.
Ps: a few more details
The text was updated successfully, but these errors were encountered: