Forum: Mikrocontroller und Digitale Elektronik [Artikel STM32] was ist auf Adresse 0x200001E0 versteckt?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von eagle user (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Servus!

Die Adresse 0x200001E0 wird angeblich beim Booten aus dem RAM benutzt. 
In der AN2606 wird sie aber nicht erwähnt. Ich hab' auch in mehreren 
Reference Manuals gesucht. Im Internet finde ich sie an genau 2 Stellen:
https://www.mikrocontroller.net/articles/STM32#Bootmodi
Beitrag "STM32F4 Binärfile ins RAM schieben"

Wenn man das Programm im RAM auf 0x20000000 linkt, liegt 0x1E0
 * beim H7 und F7: mitten in den Interrupt-Vektoren
 * beim L476: direkt dahinter (sehr verdächtig!)
 * bei kleineren M3 und M4: irgendwo dahinter
 * bei den M0: praktisch mitten im RAM (die haben ja sehr wenig davon)

Wenn man den eingebauten Bootloader benutzt, kann man 0x200001E0 nicht 
beschreiben, weil das mitten im Bootloader-RAM ist.

In meinem Programm würde ich gern eine struct auf eine feste Adresse 
legen und dabei stört diese 1E0. Kennt evt. jemand das Geheimnis?

von Jim M. (turboj)


Bewertung
0 lesenswert
nicht lesenswert
eagle user schrieb:
> In meinem Programm würde ich gern eine struct auf eine feste Adresse
> legen und dabei stört diese 1E0. Kennt evt. jemand das Geheimnis

Vermutlich gilt das nur für bestimmte STM32- Familien. Liesst sich für 
mich wie eine Krücke für schlecht designte Debug-Interfaces, denn mit 
dem normalen ARM ADI kann der Debugger Code im RAM direkt ausführen.

Ich würde mal in der passenden Family Referenz nach den Boot Pins 
suchen.

Außerdem kann man die Addresse offenbar frei verwenden, sobald man 
nicht aus dem RAM bootet - und man will eigentlich immer vom Flash 
booten.

von eagle user (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Jim M. schrieb:
> Vermutlich gilt das nur für bestimmte STM32- Familien.

Wohl nur bei den ersten Mustern der allerersten F1xx oder so.

> Ich würde mal in der passenden Family Referenz nach den Boot Pins
> suchen.

Bei allen Chips, die für mich passen, finde ich nichts. Wahrscheinlich 
müsste man nicht bei ST sondern bei ARM suchen, aber die halten die 
interessanten Sachen ja unter Verschluss.

von Jim M. (turboj)


Bewertung
0 lesenswert
nicht lesenswert
eagle user schrieb:
> Wahrscheinlich
> müsste man nicht bei ST sondern bei ARM suchen,

Nein, das mit den Boot Pins ist STM-exklusiv, auch wenn manche andere 
Hersteller ähnliche Ideen hatten.

eagle user schrieb:
> bei ARM suchen, aber die halten die
> interessanten Sachen ja unter Verschluss.

Auch nicht korrekt. Arm Silver Access gibt es gegen die Email und 
Abnicken der Lizenz. Und da ist die komplette Core- und Debug-Doku mit 
drin, wo alle Bits beschrieben sind.

Nur ist alles außerhalb von Core und Debug Einheit bei Cortex-M Sache 
des Chipherstellers. Das betrifft z.B. auch RAM, Flash, GPIO und Boot 
Pins.

von eagle user (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Inzwischen weiß ich, wer am 11.01.2013 diesen Absatz in den Artikel 
eingefügt hat[1]. Wenn @::ffff:88:67:69:218 das Rätsel jetzt bitte 
auflösen würde, das wäre toll ;)

[1] 
https://www.mikrocontroller.net/wikisoftware/index.php?title=STM32&type=revision&diff=70786&oldid=70778

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.