esp-idf/components/freertos
Ivan Grokhotkov b7841ec313 freertos: use xTaskQueueMutex to protect tick count
Having two different spinlocks is problematic due to possibly
different order in which the locks will be taken. Changing the order
would require significant restructuring of kernel code which is
undesirable.

An additional place where taking xTickCountMutex was needed was in
vApplicationSleep function. Not taking xTickCountMutex resulted in
other CPU sometimes possibly advancing tick count while light sleep
entry/exit was happening. Taking xTickCountMutex in addition to
xTaskQueueMutex has shown a problem that in different code paths,
these two spinlocks could be taken in different order, leading to
(unlikely, but possible) deadlocks.
2018-11-05 03:08:26 +00:00
..
include/freertos FreeRTOS: Update API reference from words to bytes 2018-10-09 20:49:19 +08:00
test cmake: Add support for test build 2018-10-20 12:07:24 +08:00
CMakeLists.txt cmake: add app_trace as FreeRTOS dependency 2018-09-21 14:58:34 +08:00
component.mk esp_ringbuf: fix default placement from flash to IRAM 2018-10-17 23:34:07 -05: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 freertos/backport and test v9.0.0 functions 2017-11-23 14:18:09 +08:00
FreeRTOS-openocd.c freertos: place uxTopUsedPriority into DRAM 2017-09-11 20:15:27 +08:00
Kconfig Merge branch 'feature/lwip_task_affinity' into 'master' 2018-09-18 15:10:17 +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/lwip_task_affinity' into 'master' 2018-09-18 15:10:17 +08:00
portasm.S pm: support for tracing using GPIOs 2017-10-18 14:19:18 +08:00
portmux_impl.h Especially when internal memory fills up, some FreeRTOS structures (queues etc) get allocated in psram. These structures also contain a spinlock, which needs an atomic-compare-swap operation to work. The psram hardware, however, does not support this operation. As a workaround, this patch detects these spinlocks and will, instead of S32C1I, use equivalent C-code to simulate the behaviour, with an (internal) mux for atomicity. 2018-02-02 17:11:06 +08:00
portmux_impl.inc.h freertos: Remove either one or two assertions from "fast path" of vPortCPUReleaseMutex() 2018-07-31 06:35:25 +00:00
queue.c freertos: Add critical sections to queue sets. 2018-07-13 13:58:54 +08:00
readme_xtensa.txt Initial public version 2016-08-17 23:08:22 +08:00
stdint.readme Initial public version 2016-08-17 23:08:22 +08:00
tasks.c freertos: use xTaskQueueMutex to protect tick count 2018-11-05 03:08:26 +00:00
timers.c freertos/backport and test v9.0.0 functions 2017-11-23 14:18:09 +08:00
xtensa_context.S fix bug that files missing commit in MR 773 2017-05-31 19:37:39 +08:00
xtensa_init.c freertos: deprecate XT_CLOCK_FREQ 2017-10-18 14:19:19 +08:00
xtensa_intr_asm.S Replace non-multicore-aware rom funcs with multicore-aware funcs, ESP_LOG->ESP_EARLY_LOG fix, reserve ints used in wireless libs. Fixes WiFi crashing 2016-12-13 13:24:01 +08:00
xtensa_intr.c esp32: SEGGER SystemView Tracing Support 2017-06-27 20:52:43 +03:00
xtensa_overlay_os_hook.c Initial public version 2016-08-17 23:08:22 +08:00
xtensa_vector_defaults.S panic handler: Print correct PC & backtrace for debug exceptions 2017-10-23 15:46:43 +08:00
xtensa_vectors.S pm: support for tracing using GPIOs 2017-10-18 14:19:18 +08:00