esp-idf/components/freertos
Jeroen Domburg ffeffcd315 Merge branch 'feature/crosscore_int' into 'master'
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
2016-10-31 11:04:28 +08:00
..
include/freertos Merge branch 'feature/crosscore_int' into 'master' 2016-10-31 11:04:28 +08:00
FreeRTOS-openocd.c Fix int wdt iram, fix some fallout of moving panic stuff to esp32 2016-10-28 12:05:42 +08:00
Kconfig Merge branch 'feature/crosscore_int' into 'master' 2016-10-31 11:04:28 +08:00
component.mk Name component makefiles component.mk instead of Makefile 2016-09-08 13:41:19 +10:00
croutine.c Add UNTESTED_FUNCTION() call to untested functions, make Kconfig option to enable that to map to assert() 2016-09-27 11:36:30 +08:00
event_groups.c Fix UNTESTED_FUNCTION includes, remove unnecessary mux initialization in event groups 2016-09-27 11:50:46 +08:00
heap_regions.c FreeRTOS: temporary solution for memory canaries and memory debug 2016-09-07 21:52:24 +08:00
heap_regions_debug.c FreeRTOS: temporary solution for memory canaries and memory debug 2016-09-07 21:52:24 +08:00
license.txt Initial public version 2016-08-17 23:08:22 +08:00
list.c Initial public version 2016-08-17 23:08:22 +08:00
port.c Merge branch 'feature/crosscore_int' into 'master' 2016-10-31 11:04:28 +08:00
portasm.S Some more optimizations, mostly in involuntary task switches. Doesn not really help here, but might in other cases. 2016-10-18 10:51:08 +08:00
queue.c Merge branch 'master' into feature/freertos_static_buffers 2016-10-10 23:34:45 -06:00
readme_smp.txt 'Merge branch 'thread_local_storage_delete_callbacks' into 'master' 2016-08-24 13:30:30 +08:00
readme_xtensa.txt Initial public version 2016-08-17 23:08:22 +08:00
ringbuf.c Add ringbuf.c. This works like a FreeRTOS queue, but allows for variable-length items which in some cases is more memory efficient than a queue. 2016-09-28 12:43:35 +08:00
stdint.readme Initial public version 2016-08-17 23:08:22 +08:00
tasks.c Merge branch 'feature/crosscore_int' into 'master' 2016-10-31 11:04:28 +08:00
timers.c Add static initializers for muxes, add mutex init to vPortCPUAcquireMutex 2016-08-22 17:36:32 +08:00
xtensa_context.S Initial public version 2016-08-17 23:08:22 +08:00
xtensa_init.c Initial public version 2016-08-17 23:08:22 +08:00
xtensa_intr.c Initial public version 2016-08-17 23:08:22 +08:00
xtensa_intr_asm.S Initial public version 2016-08-17 23:08:22 +08:00
xtensa_overlay_os_hook.c Initial public version 2016-08-17 23:08:22 +08:00
xtensa_vectors.S Merge branch 'feature/wdts' into 'master' 2016-10-27 17:09:35 +08:00