From ac163f81ae706e682503eee4d67bf52d9311578a Mon Sep 17 00:00:00 2001 From: Delfer Date: Thu, 14 Dec 2023 10:39:10 +0300 Subject: [PATCH] [WIP] quick fix for RISC-V ESP32 C3 --- esp32_firmware_reader.py | 2 +- esp32_image_parser.py | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/esp32_firmware_reader.py b/esp32_firmware_reader.py index b0ddf04..115590d 100644 --- a/esp32_firmware_reader.py +++ b/esp32_firmware_reader.py @@ -28,7 +28,7 @@ def print_verbose(verbose, value): print(value) def read_partition_table(fh, verbose=False): - fh.seek(0x8000) + fh.seek(0x10000) partition_table = {} print_verbose(verbose, "reading partition table...") diff --git a/esp32_image_parser.py b/esp32_image_parser.py index 6503cf7..a28ba1b 100755 --- a/esp32_image_parser.py +++ b/esp32_image_parser.py @@ -6,6 +6,7 @@ import os, argparse from makeelf.elf import * from esptool import * +from esptool.bin_image import * from esp32_firmware_reader import * from read_nvs import * @@ -38,13 +39,13 @@ def calcPhFlg(flags): return p_flags def image2elf(filename, output_file, verbose=False): - image = LoadFirmwareImage('esp32', filename) + image = LoadFirmwareImage('esp32c3', filename) # parse image name # e.g. 'image.bin' turns to 'image' image_name = image_base_name(filename) - elf = ELF(e_machine=EM.EM_XTENSA, e_data=ELFDATA.ELFDATA2LSB) + elf = ELF(e_machine=EM.EM_RISCV, e_data=ELFDATA.ELFDATA2LSB) elf.Elf.Ehdr.e_entry = image.entrypoint print_verbose(verbose, "Entrypoint " + str(hex(image.entrypoint))) @@ -52,7 +53,7 @@ def image2elf(filename, output_file, verbose=False): # maps segment names to ELF sections section_map = { 'DROM' : '.flash.rodata', - 'BYTE_ACCESSIBLE, DRAM, DMA': '.dram0.data', + 'DRAM, BYTE_ACCESSIBLE' : '.dram0.data', 'IROM' : '.flash.text', #'RTC_IRAM' : '.rtc.text' TODO }