From 1c9a9d2b288c4f849377a101f8d44b3edbacaae7 Mon Sep 17 00:00:00 2001 From: samy kamkar Date: Sun, 7 May 2023 19:31:07 -0700 Subject: [PATCH 1/4] ignore __pycache__ dir --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index e43b0f9..9f2e848 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .DS_Store +__pycache__/ From 94e56f64a489d4409a7bae645d7cb8d3659a39eb Mon Sep 17 00:00:00 2001 From: samy kamkar Date: Sun, 7 May 2023 19:32:24 -0700 Subject: [PATCH 2/4] fix create_elf bug with missing LoadFirmwareImage --- esp32_image_parser.py | 1 + 1 file changed, 1 insertion(+) diff --git a/esp32_image_parser.py b/esp32_image_parser.py index 6503cf7..aa08b99 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 * From 05104adeb19878ec98950b2814d8cf44117327b7 Mon Sep 17 00:00:00 2001 From: samy kamkar Date: Sun, 7 May 2023 19:35:43 -0700 Subject: [PATCH 3/4] fix bug to run from alternate directories --- esp32_image_parser.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/esp32_image_parser.py b/esp32_image_parser.py index aa08b99..d04687b 100755 --- a/esp32_image_parser.py +++ b/esp32_image_parser.py @@ -10,6 +10,8 @@ from esp32_firmware_reader import * from read_nvs import * +symbols_dump = os.path.dirname(os.path.realpath(__file__)) + "/symbols_dump.txt" + def image_base_name(path): filename_w_ext = os.path.basename(path) filename, ext = os.path.splitext(filename_w_ext) @@ -187,7 +189,7 @@ def image2elf(filename, output_file, verbose=False): def add_elf_symbols(elf): - fh = open("symbols_dump.txt", "r") + fh = open(symbols_dump, "r") lines = fh.readlines() bind_map = {"LOCAL" : STB.STB_LOCAL, "GLOBAL" : STB.STB_GLOBAL} From d05e36849fada939df2e46bcae6819f594d9fcfb Mon Sep 17 00:00:00 2001 From: samy kamkar Date: Sun, 7 May 2023 19:37:26 -0700 Subject: [PATCH 4/4] add support for non-DMA DRAM data --- esp32_image_parser.py | 1 + 1 file changed, 1 insertion(+) diff --git a/esp32_image_parser.py b/esp32_image_parser.py index d04687b..425f602 100755 --- a/esp32_image_parser.py +++ b/esp32_image_parser.py @@ -55,6 +55,7 @@ def image2elf(filename, output_file, verbose=False): # maps segment names to ELF sections section_map = { 'DROM' : '.flash.rodata', + 'BYTE_ACCESSIBLE, DRAM' : '.dram0.data', 'BYTE_ACCESSIBLE, DRAM, DMA': '.dram0.data', 'IROM' : '.flash.text', #'RTC_IRAM' : '.rtc.text' TODO