Code: Select all
coredump,data,coredump,0x50000,64K,encrypted
Code: Select all
CONFIG_PARTITION_TABLE_OFFSET=0xE000
Code: Select all
CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH=y
CONFIG_ESP_COREDUMP_ENABLE_TO_UART=n
CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=n
CONFIG_ESP_COREDUMP_DATA_FORMAT_BIN=n
CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF=y
CONFIG_ESP_COREDUMP_CHECKSUM_CRC32=y
CONFIG_ESP_COREDUMP_CHECK_BOOT=y
CONFIG_ESP_COREDUMP_ENABLE=y
CONFIG_ESP_COREDUMP_MAX_TASKS_NUM=32
Code: Select all
I (879) esp_core_dump_flash: Init core dump to flash
I (884) esp_core_dump_flash: Found partition 'coredump' @ 50000 65536 bytes
I (1135) esp_core_dump_flash: Core dump data checksum is correct
I (1136) esp_core_dump_flash: Found core dump 41284 bytes in flash @ 0x50000
However, I have been unable to download and check the core dump via the debug UART. When I try to read and analyze this core dump with "espcoredump.py" tool (as per doc page), I get an error.
Command:
Code: Select all
python C:\Users\Jeremycb\esp-idf\components\espcoredump\espcoredump.py -p COM4 info_corefile --core-format elf --off 327680 .\build\wireless-controller.elf
Code: Select all
espcoredump.py v0.4-dev
INFO: Invoke esptool to read image.
INFO: Retrieving core dump partition offset and size...
Traceback (most recent call last):
File "C:\Users\Jeremycb\esp-idf\components\partition_table\parttool.py", line 365, in <module>
main()
File "C:\Users\Jeremycb\esp-idf\components\partition_table\parttool.py", line 334, in main
target = ParttoolTarget(**target_args)
File "C:\Users\Jeremycb\esp-idf\components\partition_table\parttool.py", line 116, in __init__
partition_table = gen.PartitionTable.from_binary(f.read())
File "C:\Users\Jeremycb\esp-idf\components\partition_table\gen_esp32part.py", line 282, in from_binary
result.append(PartitionDefinition.from_binary(data))
File "C:\Users\Jeremycb\esp-idf\components\partition_table\gen_esp32part.py", line 434, in from_binary
res.name = res.name.decode()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf6 in position 2: invalid start byte
ERROR: parttool get partition info failed with err 1
ERROR: Check if the coredump partition exists in partition table.
ERROR: esptool script execution failed with err 1
INFO: b'esptool.py v3.3.2\r\nSerial port COM4\r\nConnecting.....\r\nDetecting chip type... Unsupported detection protocol, switching and trying again...\r\nConnecting.....\r\nDetecting chip type... ESP32\r\nChip is ESP32-D0WDR2-V3-V3 (revision 3)\r\nFeatures: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None\r\nCrystal is 40MHz\r\nMAC: c4:de:e2:1d:2a:10\r\nUploading stub...\r\nRunning stub...\r\nStub running...\r\n3072 (100 %)\r\n3072 (100 %)\r\nRead 3072 bytes at 0x8000 in
0.3 seconds (80.9 kbit/s)...\r\nHard resetting via RTS pin...\r\nRunning C:\\Users\\Jeremycb\\.espressif\\python_env\\idf4.4_py3.9_env\\Scripts\\python.exe C:\\Users\\Jeremycb\\esp-idf\\components\\esptool_py\\esptool\\esptool.py --port COM4 read_flash 32768 3072 C:\\Users\\Jeremycb\\AppData\\Local\\Temp\\tmptdbs79fu...\r\n'
ERROR: Error during the subprocess execution
Traceback (most recent call last):
File "C:\Users\Jeremycb\esp-idf\components\espcoredump\espcoredump.py", line 350, in <module>
temp_core_files = info_corefile()
File "C:\Users\Jeremycb\esp-idf\components\espcoredump\espcoredump.py", line 149, in info_corefile
core_elf_path, target, temp_files = get_core_dump_elf(e_machine=exe_elf.e_machine)
File "C:\Users\Jeremycb\esp-idf\components\espcoredump\espcoredump.py", line 65, in get_core_dump_elf
loader = ESPCoreDumpFlashLoader(args.off, args.chip, port=args.port, baud=args.baud)
File "C:\Users\Jeremycb\esp-idf\components\espcoredump\corefile\loader.py", line 439, in __init__
self.target = self._load_core_src()
File "C:\Users\Jeremycb\esp-idf\components\espcoredump\corefile\loader.py", line 164, in _load_core_src
_header = EspCoreDumpV1Header.parse(coredump_bytes) # first we use V1 format to get version
File "C:\Users\Jeremycb\.espressif\python_env\idf4.4_py3.9_env\lib\site-packages\construct\core.py", line 288, in parse
return self.parse_stream(io.BytesIO(data), **contextkw)
File "C:\Users\Jeremycb\.espressif\python_env\idf4.4_py3.9_env\lib\site-packages\construct\core.py", line 300, in parse_stream
return self._parsereport(stream, context, "(parsing)")
File "C:\Users\Jeremycb\.espressif\python_env\idf4.4_py3.9_env\lib\site-packages\construct\core.py", line 312, in _parsereport
obj = self._parse(stream, context, path)
File "C:\Users\Jeremycb\.espressif\python_env\idf4.4_py3.9_env\lib\site-packages\construct\core.py", line 1982, in _parse
subobj = sc._parsereport(stream, context, path)
File "C:\Users\Jeremycb\.espressif\python_env\idf4.4_py3.9_env\lib\site-packages\construct\core.py", line 312, in _parsereport
obj = self._parse(stream, context, path)
File "C:\Users\Jeremycb\.espressif\python_env\idf4.4_py3.9_env\lib\site-packages\construct\core.py", line 2440, in _parse
return self.subcon._parsereport(stream, context, path)
File "C:\Users\Jeremycb\.espressif\python_env\idf4.4_py3.9_env\lib\site-packages\construct\core.py", line 312, in _parsereport
obj = self._parse(stream, context, path)
File "C:\Users\Jeremycb\.espressif\python_env\idf4.4_py3.9_env\lib\site-packages\construct\core.py", line 1020, in _parse
data = stream_read(stream, self.length, path)
File "C:\Users\Jeremycb\.espressif\python_env\idf4.4_py3.9_env\lib\site-packages\construct\core.py", line 92, in stream_read
raise StreamError("stream read less than specified amount, expected %d, found %d" % (length, len(data)), path=path)
construct.core.StreamError: Error in path (parsing) -> tot_len
stream read less than specified amount, expected 4, found 0
This used to work, but that was without flash encryption or custom partition table, and with an older version of ESP-IDF...