Question: What limits lwip usage within a FreeRTOS environment to setup/loop and not tasks? #2152
spiderkeys
started this conversation in
General
Replies: 1 comment 1 reply
-
We run in LWIP's NO_SYS=1 mode which lets us run without an underlying OS. LWIP and the WiFi libraries are non-reentrant, so having more than 1 task accessing them will make your app very unhappy. But, more fundamentally, by running LWIP in NO_SYS mode there are no |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I was wondering if I could get a bit of clarification/context on the following lines in the Pico core's documentation:
WiFi docs:
Ethernet Docs:
I can understand why networking code might need to be restricted to a single core, but I am not clear on why networking code can not be called within a FreeRTOS task other than the one that calls setup/loop.
I've been looking at how the zenoh-pico middleware library works with the ESP32 Arduino core, and they seem to be able to make calls to lwip functions from within additional FreeRTOS tasks (pinned to core 0). I was wondering if I could get zenoh-pico working on the rp2040, but the limitation as written suggests that zenoh's background network tasks (read and lease tasks, which you normally create in
setup()
and call lwip's socket functions) would be in violation of this constraint.Any background or clarifications are appreciated - I might be reading this entirely wrong!
Beta Was this translation helpful? Give feedback.
All reactions