From 7e9a2332965e29d2455fb617f1c0133631773440 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Mon, 26 Sep 2022 22:42:58 +0200 Subject: [PATCH] - new Bootloader for ESP-IDF 4.2 - save partition table to device - modify partition table for async OTA --- bin/device-install.bat | 3 ++- bin/device-install.sh | 3 ++- images/system-info.bin | Bin 61440 -> 61440 bytes partition-table.csv | 9 +++++---- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/bin/device-install.bat b/bin/device-install.bat index d6a034a4..a7a6743e 100755 --- a/bin/device-install.bat +++ b/bin/device-install.bat @@ -30,8 +30,9 @@ IF EXIST %FILENAME% ( echo Trying to flash update %FILENAME%, but first erasing and writing system information" %PYTHON% -m esptool --baud 115200 erase_flash %PYTHON% -m esptool --baud 115200 write_flash 0x1000 system-info.bin + %PYTHON% -m esptool --baud 115200 write_flash 0x8000 partitions.bin for %%f in (littlefs-*.bin) do ( - %PYTHON% -m esptool --baud 115200 write_flash 0x2B0000 %%f + %PYTHON% -m esptool --baud 115200 write_flash 0x300000 %%f ) %PYTHON% -m esptool --baud 115200 write_flash 0x10000 %FILENAME% ) else ( diff --git a/bin/device-install.sh b/bin/device-install.sh index 95383405..d1f4ba15 100755 --- a/bin/device-install.sh +++ b/bin/device-install.sh @@ -48,7 +48,8 @@ if [ -f "${FILENAME}" ]; then echo "Trying to flash ${FILENAME}, but first erasing and writing system information" "$PYTHON" -m esptool erase_flash "$PYTHON" -m esptool write_flash 0x1000 system-info.bin - "$PYTHON" -m esptool write_flash 0x2B0000 littlefs-*.bin + "$PYTHON" -m esptool write_flash 0x8000 partitions.bin + "$PYTHON" -m esptool write_flash 0x300000 littlefs-*.bin "$PYTHON" -m esptool write_flash 0x10000 ${FILENAME} else echo "Invalid file: ${FILENAME}" diff --git a/images/system-info.bin b/images/system-info.bin index 7ba5adc02e20ef40912cb62f4ad43b3823b3080a..85acfca150eb3617540eb7ca63888c1351af7a16 100644 GIT binary patch literal 61440 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 AKmY&$ diff --git a/partition-table.csv b/partition-table.csv index 131b9bc8..e0d44cf7 100644 --- a/partition-table.csv +++ b/partition-table.csv @@ -1,7 +1,8 @@ # FIXME! using the genpartitions based table doesn't work on TTGO so for now I stay with my old memory map # This is a layout for 4MB of flash # Name, Type, SubType, Offset, Size, Flags -nvs, data, nvs, 0x9000, 0x5000, -otadata, data, ota, 0xe000, 0x2000, -app0, app, ota_0, 0x10000, 0x2A0000, -spiffs, data, spiffs, 0x2B0000,0x150000, \ No newline at end of file +nvs, data, nvs, 0x009000, 0x005000, +otadata, data, ota, 0x00e000, 0x002000, +app, app, ota_0, 0x010000, 0x250000, +flashApp, app, ota_1, 0x260000, 0x0A0000, +spiffs, data, spiffs, 0x300000, 0x100000, \ No newline at end of file