Partitionstabelle ESP-12F (ESP8266EX)

OP #7984534

Hallo & frohe Weihnachten,

ich habe meinen Uralt-Account reaktiviert in der Hoffnung dass Ihr mir weiterhelfen könnt. Ich würde gerne auf mein ESP-12F-Modul eine neue Partitionstabelle flashen, allerdings wollte ich vorab die aktuelle Tabelle dumpen um mal zu schauen "was da so drauf ist".

Mit esptool habe ich den Flash an 0x8000 (alte Chips), 0x9000 (neue Chips), 0x0100 (meinte ChatGPT) und auch komplett (4MB) ausgelesen. An keiner Stelle finde ich etwas, was wie eine Tabelle aussieht, oder was von gen_esp32part.py dekompiliert werden könnte. Auch wenn das Tool esp32part.py heißt, sollte es hier keinen Unterschied geben und laut https://docs.espressif.com/projects/esp8266-rtos-sdk/en/latest/api-guides/partition-tables.html müßte man aber auch visuell so eine Tabelle im Hexcode erkennen - so kompliziert sind die ja nicht.

Was übersehe ich?

Grüße, André

OP

Wie gesagt, das es keine Partitionstabelle ist, weiß ich auch. Die Frage ist: Wo finde ich die im ESP8266EX? an 0x8000 oder 0x9000 wohl nicht (siehe Dumps), aber es muss ja eine geben vermute ich. Alleine schon wegen OTA/nicht OTA ... SPIFFS/Kein FS ... je nachdem was ich haben möchte eben.

OP

Alexander schrieb:

Da ist keine Partitionstabelle. Bist Du sicher dass es eine gibt?

Sicher bin ich nicht, es würde mich aber schwer wundern, wenn es keine gäbe (siehe oben - diverse Wunschoptionen wie OTA, Filesystem, ... bedingen das ja).

Rüdiger B. schrieb:

https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-guides/partition-tables.html

Ging das an mich? Den Link hatte ich gepostet - wie eine Tabelle auszusehen hat, habe ich wohl verstanden - ich finde sie nur nicht im Chip ;-)

So wie das aussieht gab es beim ESP8266 zumindest die Möglichkeit dass die Partitionstabelle nur im Code existiert, nicht im Flash.

https://github.com/espressif/ESP8266_NONOS_SDK/blob/master/documents/EN/%20Partition%20Table.md

Im Arduino Framework finde ich auch keinen partitions/ Pfad mit den Beispiel .csv Partitionstabellen.

https://github.com/esp8266/Arduino/tree/master/tools

https://github.com/espressif/arduino-esp32/tree/master/tools

: Bearbeitet durch User
OP

Danke erstmal für Eure Beiträge. Ich hab mal ein wenig im Arduino-Core gestöbert.

Meinem Verständnis nach gibt es wirklich keine Partitionstabelle, sondern der HAL definiert in https://github.com/esp8266/Arduino/blob/master/cores/esp8266/FlashMap.h 3 Varianten von Flash-Aufteilungen die beim kompilieren mit Hilfe der boards.txt entweder mit "FLASH_MAP_SUPPORT=1" selektierbar gemacht werden oder die Aufteilung erfolgt durch #define der Konstanten mit Hilfe der eagle.flash.*.ld-Dateien.

Folgende Konstanten werden dabei beim kompilieren gesetzt: _FS_start, _FS_end, _FS_page, _FS_block und _EEPROM_start

So ganz raus habe ich noch nicht, wie OTA hier Platz hat und warum Werte doppelt definiert werden.

Beispiel (Boards.txt):

1
nodemcuv2.name=NodeMCU 1.0 (ESP-12E Module)
2
...
3
nodemcuv2.menu.eesz.4M2M=4MB (FS:2MB OTA:~1019KB)
4
...
5
nodemcuv2.menu.eesz.4M2M.build.flash_ld=eagle.flash.4m2m.ld
6
nodemcuv2.menu.eesz.4M2M.build.spiffs_pagesize=256
7
nodemcuv2.menu.eesz.4M2M.build.spiffs_start=0x200000
8
nodemcuv2.menu.eesz.4M2M.build.spiffs_end=0x3FA000
9
nodemcuv2.menu.eesz.4M2M.build.spiffs_blocksize=8192

In der referenzierten eagle.flash.4m2m.ld steht:

1
PROVIDE ( _FS_start = 0x40400000 );
2
PROVIDE ( _FS_end = 0x405FA000 );
3
PROVIDE ( _FS_page = 0x100 );
4
PROVIDE ( _FS_block = 0x2000 );
5
/* The following symbols are DEPRECATED and will be REMOVED in a future release */
6
PROVIDE ( _SPIFFS_start = 0x40400000 );
7
PROVIDE ( _SPIFFS_end = 0x405FA000 );
8
PROVIDE ( _SPIFFS_page = 0x100 );
9
PROVIDE ( _SPIFFS_block = 0x2000 );

Also komplett andere Werte für das Dateisystem. Ich denke aber, dass die Werte aus boards.txt ignoriert werden, da SPIFF in den eagle.flash.*.ld-Dateien als "DEPRECATED" getagged ist.

Bleibt nur noch OTA ;-)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Monate alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.