ESP8266 Memory Map

OP #4844555
Lesenswert?
• ▲
▼
Mal eine Frage hierzu ...

1
esptool.py write_flash 0x00000 blinky-0x00000.bin 0x10000 blinky-0x10000.bin

Wo befinden sich diese 0x00000 bzw. 0x10000 ???

http://esp8266-re.foogod.com/wiki/Memory_Map

1
Start Address   Size   R/W   Access Width
2
(bits)   Name / Description
3
0x00000000   0x20000000   N/A   N/A   Protected Region
4
0x20000000   0x1FF00000   R   8/16/32   Apparently unmapped (reads as 00 80 00 00)
5
0x3FF00000   0x10000   R/W   8/16/32   Dport0
6
0x3FF10000   0x10000   R   8/16/32   Apparently unmapped (reads as 00 00 00 00)
7
0x3FF20000   0x10000   R/W   8/16/32   WDev Control Registers
8
0x3FF30000   0x90000   R   8/16/32   Apparently unmapped (reads as 00 00 00 00)
9
0x3FFC0000   0x20000   R?   8/16/32   Unknown Region 1
10
0x3FFE0000   0x8000   R   8/16/32   Apparently unmapped (reads as 00 00 00 00)
11
0x3FFE8000   0x18000   R/W   8/16/32   Data RAM
12
0x40000000   0x10000   R   32   Boot ROM
13
0x40010000   0x10000   R   32   Boot ROM (repeated)
14
0x40020000   0xD0000   R   32   Apparently unmapped (reads as 00 00 00 00)
15
0x40100000   0x8000   R/W   32   Instruction RAM
16
0x40108000   0x8000   R/W   32   Mappable Instruction RAM
17
0x40110000   0x30000   R   32   Apparently unmapped (reads as 00 00 00 00)
18
0x40140000   0xC0000   R   32   Apparently unmapped (reads as 59 31 d8 ec)
19
0x40200000   0x100000   R   32   SPI Flash Cache
20
0x40300000   0x1FD00000   R   8/16/32   Apparently unmapped (reads as 00 80 00 00)
21
0x60000000   0x10000000   R/W   8/16/32   Memory-Mapped IO Ports
22
0x70000000   0x90000000   R   8/16/32   Apparently unmapped (reads as 00 00 00 00)
Gast #4844572
Lesenswert?
• ▲
▼
Εrnst B. schrieb:
> Wohin der CPU-Core das dann beim Booten hinkopiert oder hinmappt

Nicht nur beim Booten.

Er saugt sich, immer durch, wenn es nötig ist, Code aus dem Flash ins 
Ram.
1MB Code kann verwaltet werden.
Der Code-Ram Bereich ist erheblich kleiner.

Die Folge daraus:
ISR benötigen ein "cache" Attribut, damit sie im Ram bleiben.
Beim ersten IRQ Aufruf dauerts meist sehr lange, bis der Code an die 
Reihe kommt.
OP #4844652
Lesenswert?
• ▲
▼
Ahh, verstehe ... danke!

Das heisst der Prozessor muss den Code aus dem SPI_RAM immer erst in
sein Instruction_RAM umkopieren? Und man kann qasi den Prozessor zwingen 
Code dort zu halten, für ISR z.b. weil ja sonst bei jedem Interruppt der 
Code erst immer kopiert werden müsste?

Noch eine Frage, warum habe ich nach dem Compilieren immer zwei .bin 
Files?
OP #4844665
Lesenswert?
• ▲
▼
W3ll S. schrieb:

> Und man kann qasi den Prozessor zwingen
> Code dort zu halten, für ISR z.b. weil ja sonst bei jedem Interruppt der
> Code erst immer kopiert werden müsste?

Ahh, gerade gefunden:

Application code should have the ICACHE_FLASH_ATTR decorator unless
it is executed very often.

All interrupt handlers must not have the ICACHE_FLASH_ATTR decorator and 
any code which executes very often should not have the decorator.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.