kopia lustrzana https://github.com/espressif/esp-idf
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 |
||
---|---|---|
.. | ||
include/freertos | ||
FreeRTOS-openocd.c | ||
Kconfig | ||
component.mk | ||
croutine.c | ||
event_groups.c | ||
heap_regions.c | ||
heap_regions_debug.c | ||
license.txt | ||
list.c | ||
port.c | ||
portasm.S | ||
queue.c | ||
readme_smp.txt | ||
readme_xtensa.txt | ||
ringbuf.c | ||
stdint.readme | ||
tasks.c | ||
timers.c | ||
xtensa_context.S | ||
xtensa_init.c | ||
xtensa_intr.c | ||
xtensa_intr_asm.S | ||
xtensa_overlay_os_hook.c | ||
xtensa_vectors.S |