esp-idf/components/espcoredump/Kconfig
Simon Arlott 1feb3c9f9b espcoredump: Support for not overwriting existing core dump in flash
If there's an unattended boot loop or a crash that causes another crash on
the next boot, it needs to be possible to avoid overwriting a saved core
dump with another core dump.

Add an option to do this and skip writing core dumps if the partition isn't
empty.

Fixes #12027.

Mergeshttps://github.com/espressif/esp-idf/pull/12105
2023-11-02 06:58:47 +00:00

142 lines
5.3 KiB
Plaintext

menu "Core dump"
choice ESP_COREDUMP_TO_FLASH_OR_UART
prompt "Data destination"
default ESP_COREDUMP_ENABLE_TO_NONE
help
Select place to store core dump: flash, uart or none (to disable core dumps generation).
Core dumps to Flash are not available if PSRAM is used for task stacks.
If core dump is configured to be stored in flash and custom partition table is used add
corresponding entry to your CSV. For examples, please see predefined partition table CSV descriptions
in the components/partition_table directory.
config ESP_COREDUMP_ENABLE_TO_FLASH
bool "Flash"
select ESP_COREDUMP_ENABLE
config ESP_COREDUMP_ENABLE_TO_UART
bool "UART"
select ESP_COREDUMP_ENABLE
config ESP_COREDUMP_ENABLE_TO_NONE
bool "None"
endchoice
choice ESP_COREDUMP_DATA_FORMAT
prompt "Core dump data format"
default ESP_COREDUMP_DATA_FORMAT_ELF
depends on !ESP_COREDUMP_ENABLE_TO_NONE
help
Select the data format for core dump.
config ESP_COREDUMP_DATA_FORMAT_BIN
bool "Binary format"
config ESP_COREDUMP_DATA_FORMAT_ELF
bool "ELF format"
endchoice
choice ESP_COREDUMP_CHECKSUM
prompt "Core dump data integrity check"
default ESP_COREDUMP_CHECKSUM_CRC32
depends on !ESP_COREDUMP_ENABLE_TO_NONE
help
Select the integrity check for the core dump.
config ESP_COREDUMP_CHECKSUM_CRC32
bool "Use CRC32 for integrity verification"
config ESP_COREDUMP_CHECKSUM_SHA256
bool "Use SHA256 for integrity verification"
depends on ESP_COREDUMP_DATA_FORMAT_ELF && IDF_TARGET_ESP32
endchoice
config ESP_COREDUMP_CHECK_BOOT
bool "Check core dump data integrity on boot"
default y
depends on ESP_COREDUMP_ENABLE_TO_FLASH
help
When enabled, if any data are found on the flash core dump partition,
they will be checked by calculating their checksum.
config ESP_COREDUMP_ENABLE
bool
default F
help
Enables/disable core dump module.
config ESP_COREDUMP_LOGS
bool "Enable coredump logs for debugging"
depends on ESP_COREDUMP_ENABLE
default y
help
Enable/disable coredump logs. Logs strings from espcoredump component are
placed in DRAM. Disabling these helps to save ~5KB of internal memory.
config ESP_COREDUMP_MAX_TASKS_NUM
int "Maximum number of tasks"
depends on ESP_COREDUMP_ENABLE
default 64
help
Maximum number of tasks snapshots in core dump.
config ESP_COREDUMP_UART_DELAY
int "Delay before print to UART"
depends on ESP_COREDUMP_ENABLE_TO_UART
default 0
help
Config delay (in ms) before printing core dump to UART.
Delay can be interrupted by pressing Enter key.
config ESP_COREDUMP_FLASH_NO_OVERWRITE
bool "Don't overwrite existing core dump"
depends on ESP_COREDUMP_ENABLE_TO_FLASH
default n
help
Don't overwrite an existing core dump already present in flash.
Enable this option to only keep the first of multiple core dumps.
If enabled, the core dump partition must be erased before the first
core dump can be written.
config ESP_COREDUMP_USE_STACK_SIZE
bool
default y if ESP_COREDUMP_ENABLE_TO_FLASH && SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY
default n
help
Force the use of a custom DRAM stack for coredump when Task stacks can be in PSRAM.
config ESP_COREDUMP_STACK_SIZE
int "Reserved stack size"
depends on ESP_COREDUMP_ENABLE
range 0 4096 if !ESP_COREDUMP_USE_STACK_SIZE
range 1280 4096 if ESP_COREDUMP_USE_STACK_SIZE
default 0 if !ESP_COREDUMP_USE_STACK_SIZE
default 1280 if ESP_COREDUMP_USE_STACK_SIZE
help
Size of the memory to be reserved for core dump stack. If 0 core dump process will run on
the stack of crashed task/ISR, otherwise special stack will be allocated.
To ensure that core dump itself will not overflow task/ISR stack set this to the value above 800.
NOTE: It eats DRAM.
config ESP_COREDUMP_SUMMARY_STACKDUMP_SIZE
int "Size of the stack dump buffer"
depends on ESP_COREDUMP_DATA_FORMAT_ELF && ESP_COREDUMP_ENABLE_TO_FLASH && IDF_TARGET_ARCH_RISCV
range 512 4096
default 1024
help
Size of the buffer that would be reserved for extracting backtrace info summary.
This buffer will contain the stack dump of the crashed task. This dump is useful in generating backtrace
choice ESP_COREDUMP_DECODE
prompt "Handling of UART core dumps in IDF Monitor"
depends on ESP_COREDUMP_ENABLE_TO_UART
config ESP_COREDUMP_DECODE_INFO
bool "Decode and show summary (info_corefile)"
config ESP_COREDUMP_DECODE_DISABLE
bool "Don't decode"
endchoice
config ESP_COREDUMP_DECODE
string
default "disable" if ESP_COREDUMP_DECODE_DISABLE
default "info" if ESP_COREDUMP_DECODE_INFO
endmenu