esp-idf/components/freertos
Ivan Grokhotkov 891eb3b020 freertos: save/restore PS and EPC1 around window spilling
Since in b0491307, which has introduced the optimized window spill
procedure, _xt_context_save did not work correctly when called from
_xt_syscall_exc. This was because unlike _xt_lowint1, _xt_syscall_exc
does not save PS and EPC1. The new version of _xt_context_save
modified PS (on purpose) and EPC1 (accidentally, due to window
overflow exceptions), which resulted in a crash upon 'rfi' from the
syscall.

This commit adds restoring of PS and EPC1 in _xt_context_save. It also
slightly reduces the number of instructions used to prepare PS for
window spill.

Unit test for setjmp/longjmp (which were broken by this regression)
is added.

Closes https://github.com/espressif/esp-idf/issues/4541
2019-12-27 11:27:01 +01:00
..
include/freertos components/freertos: removed some dead ifdefs 2019-12-04 10:39:22 -03:00
test freertos: re-enable mutext test for esp32s2beta 2019-12-16 11:55:32 +05:30
CMakeLists.txt freertos: added a FreeRTOS property returning "original" include path 2019-12-06 12:16:54 +01:00
component.mk freertos: fix defining uxTopUsedPriority for esp32s2beta 2019-10-29 16:38:48 +01: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: fix defining uxTopUsedPriority for esp32s2beta 2019-10-29 16:38:48 +01:00
Kconfig freertos: changed isr time test case variables to static 2019-12-04 10:41:00 -03:00
license.txt Initial public version 2016-08-17 23:08:22 +08:00
linker.lf ldgen: update component linker fragment files 2019-04-04 15:57:34 +08:00
list.c Initial public version 2016-08-17 23:08:22 +08:00
port.c Merge branch 'master' into feature/esp32s2beta_update 2019-08-08 15:26:58 +10:00
portasm.S pm: support for tracing using GPIOs 2017-10-18 14:19:18 +08:00
portmacro_priv.h global: move the soc component out of the common list 2019-04-16 13:21:15 +08:00
portmux_impl.h freertos: Restore uxPortCompareSet() in ESP32 unicore & make compatible code for ESP32S2Beta 2019-09-04 10:53:25 +10:00
portmux_impl.inc.h freertos: Rename CORE_ID_PRO/CORE_ID_APP macros to CORE_ID_REGVAL_xxx 2019-08-12 11:12:34 +10:00
queue.c freertos: pass unit tests compilation 2019-06-12 17:13:29 +08:00
readme_xtensa.txt Initial public version 2016-08-17 23:08:22 +08:00
sdkconfig.rename Rename Kconfig options (components/freertos) 2019-05-21 09:09:01 +02:00
stdint.readme Initial public version 2016-08-17 23:08:22 +08:00
tasks.c freertos: modify configASSERTs around scheduler state check 2019-11-13 10:44:09 +05:30
timers.c freertos: Fix unused variable warning 2019-02-16 01:42:00 +08:00
xt_asm_utils.h components/freertos: fixed typos and licence placement on external code 2019-12-04 10:39:22 -03:00
xtensa_context.S freertos: save/restore PS and EPC1 around window spilling 2019-12-27 11:27:01 +01:00
xtensa_init.c build and link hello-world for esp32s2beta 2019-06-11 13:07:37 +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 freertos: pass unit tests compilation 2019-06-12 17:13:29 +08:00
xtensa_overlay_os_hook.c Initial public version 2016-08-17 23:08:22 +08:00
xtensa_vector_defaults.S misc adjustment of esp32 component 2019-04-03 19:57:46 +08:00
xtensa_vectors.S all: Using xxx_periph.h 2019-06-03 14:15:08 +08:00