Hello,
I’m doing some tests with lwip (1.4.1) and FreeRTOS (8.2.1) on a Kinetis K65 device.
From the beginning was able to ping the target reliably. For some performance tests I added the lwiperf server from the mainline repo.
I noticed, that if I was continuously pinging the target and ran a iperf test in parallel, the system stopped responding. When I halted the program execution, I was finding the program stuck in FreeRTOS runtime assertion triggered, (at least in understanding) because I was calling FreeRTOS API functions from within the Ethernet receive interrupt context.
This (presumably) illegal call to the API function happens because of a mutex guarded malloc. This does not exactly seem wrong. But it leads to this “stuck in assertion” problem.
I have uploaded the stacktrace as screenshot.
if I alter the RTOS settings so that the assertion is not active anymore, I can run iperf and ping in parallel for hours.
Why does this RTOS API function need to be called from within the receive interrupt?
Best regards
Peter