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 |
||
---|---|---|
.. | ||
croutine.h | ||
deprecated_definitions.h | ||
event_groups.h | ||
FreeRTOS.h | ||
FreeRTOSConfig.h | ||
heap_regions.h | ||
heap_regions_debug.h | ||
list.h | ||
mpu_wrappers.h | ||
portable.h | ||
portbenchmark.h | ||
portmacro.h | ||
porttrace.h | ||
projdefs.h | ||
queue.h | ||
ringbuf.h | ||
semphr.h | ||
StackMacros.h | ||
task.h | ||
timers.h | ||
xtensa_api.h | ||
xtensa_config.h | ||
xtensa_context.h | ||
xtensa_rtos.h | ||
xtensa_timer.h |