esp-idf/components/esp32
Angus Gratton 7c5afa262d deep sleep: Calculate RTC CRC immediately before deep sleep, without using RAM
Fix for issues where RTC FAST memory is updated as part of going into deep
sleep. Very high risk if heaps are in RTC memory - in particular task stacks
may be in RTC memory, but also other variables.

Also fixes potential concurrency problems as RTC FAST memory is not accessible
by CPU during the CRC calculation itself.

Method:
- Disable interrupts (currently for single core only, will need update for S3)
- Load all registers before calculating CRC or going to sleep
2021-02-08 09:59:22 +11:00
..
include Merge branch 'bugfix/sleep_comments' into 'master' 2020-04-30 13:36:58 +08:00
ld TWAI: Add ESP32-S2 support 2020-07-30 22:09:39 +08:00
test esp_system: Add test case for using deep sleep wake stub when stack is in RTC memory 2021-02-08 09:59:22 +11:00
cache_err_int.c esp32s2: IRAM/DRAM memory protection 2020-04-21 15:10:58 +02:00
cache_sram_mmu.c Spiram: Add option to reserve MMU banks; add himem API to make use of those banks 2018-10-15 14:32:58 +08:00
clk.c TWAI: Add ESP32-S2 support 2020-07-30 22:09:39 +08:00
CMakeLists.txt esp_ipc: Move to new component 2020-05-18 16:51:45 +08:00
component.mk Revert "C++: add provisions for optional RTTI support" 2019-10-31 10:12:16 +07:00
cpu_start.c toolchain: C++ exception workaround 2020-09-18 12:32:34 +07:00
crosscore_int.c Add Task Watchdog backtrace printing 2020-04-27 18:11:29 +00:00
dport_access.c freertos: moved all xtensa specific files into a separated folder 2020-01-27 16:05:30 -03:00
esp_clk_internal.h tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
esp_himem.c tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
hw_random.c move esp32 chip specific includes to esp32/xxx.h 2019-03-18 17:14:05 +08:00
intr_alloc.c intr_alloc: fix the issue intr_enable/disable cannot be used in ISR in 2019-12-23 10:23:00 +08:00
Kconfig Merge branch 'docs/update_rtc_clock_source_description_in_api_references_backport_v4.2' into 'release/v4.2' 2020-12-08 10:47:42 +08:00
linker.lf esp32, esp32s2: move panic handling code to new component 2020-03-10 19:56:24 +08:00
Makefile.projbuild Add fixes for gcc8 psram fix improvement 2020-03-27 20:04:47 +07:00
pm_esp32.c esp32: add implementation of esp_timer based on TG0 LAC timer 2020-02-06 14:00:18 +08:00
pm_trace.c tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
project_include.cmake Add fixes for gcc8 psram fix improvement 2020-03-27 20:04:47 +07:00
sdkconfig.rename feat(psram): config SPI psram pins based on efuse value 2019-05-28 21:25:16 +08:00
sleep_modes.c deep sleep: Calculate RTC CRC immediately before deep sleep, without using RAM 2021-02-08 09:59:22 +11:00
spiram_psram.c esp32: Use package identifier to look up SPI flash/PSRAM WP Pin, unless overridden 2020-07-24 21:45:31 +08:00
spiram_psram.h tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
spiram.c feat(psram): support 16Mbit PSRAM for esp32 2020-07-24 21:19:45 +08:00
system_api_esp32.c spi: fix issue with closing DMA before CPU reset 2020-10-16 06:00:18 +00:00