mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
ffeffcd315
Add cross-core int to accelerate task being awoken from another CPU. This adds a per-CPU interrupt that can be used to poke the CPU to go do something. In this case all that is implemented is a request to yield the current task, used in case a CPU unblocks a task that runs on another CPU. This gets rid of the limitation that inter-CPU communication using queues, muxes etc can take up to a FreeRTOS tick to happen. Specs! Sending an in in a queue of length 1 (essentially a semaphore) as quickly as possible (just a small delay in the sender, to make sure the receiver task gets swapped out) for 10 seconds. Number indicates the amount of ints transferred Old code: CPU0->CPU0: 42986 CPU0->CPU1,: 2999 New code: CPU0->CPU0: 42868 CPU0->CPU1: 62073 See merge request !155