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 |
||
---|---|---|
.. | ||
hwcrypto | ||
include | ||
ld | ||
lib@12b3435fc0 | ||
abi.cpp | ||
brownout.c | ||
component.mk | ||
cpu_freq.c | ||
cpu_start.c | ||
crosscore_int.c | ||
deepsleep.c | ||
event_default_handlers.c | ||
event_loop.c | ||
gdbstub.c | ||
heap_alloc_caps.c | ||
int_wdt.c | ||
ipc.c | ||
Kconfig | ||
libhal.a | ||
panic.c | ||
spiram.h | ||
task_wdt.c |