Page 1 of 1

9.6us delay in core 1 at rtos tick

Posted: Thu Jul 18, 2024 3:10 pm
by srjasz
I am running a sensor acquisition and processing loop in a single task on core 1. It is the only task that I have created and runs in an infinite loop. There are three other tasks, IDLE, a timer, and an inter processor communication task that are created during FreeRTOS initialization but only one task created by my code. The loop must complete every 20us and the sensor process takes 15us so in general working well. Every 10ms the rtos tick triggers, and runs, some processing on core 1 that takes 9.6us to complete. When this happens the code is no longer able to complete the 15us sensor process and the 9.6us rtos process within the 20us specification. I need to reduce or eliminate this 9.6us process. I don't know what the scheduler would need to be doing being that there is only one task running.

I have tried using using cooperative scheduling by disabling Preemption and Time Slicing but it didn't make a difference.

I am using an s3.
Any ideas or suggestions would be appreciated.

Thanks

Re: 9.6us delay in core 1 at rtos tick

Posted: Thu Jul 18, 2024 5:27 pm
by boarchuz
See this and related issues/PRs/forks: https://github.com/espressif/esp-idf/issues/10410

Re: 9.6us delay in core 1 at rtos tick

Posted: Thu Jul 18, 2024 6:18 pm
by srjasz
Great, thanks.