www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik STM32 Vektoren ins RAM oder FLASH?


Important 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.
Autor: Florian Micro (micro-flo)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hallo zusammen,
Ich benutze den STM32 zusammen mit den Linkerskripten von M. Thomas.

Er lässt dort die Möglichkeit zwischen
NVIC_SetVectorTable(NVIC_VectTab_RAM, (uint32_t) &_isr_vectorsram_offs);
und
NVIC_SetVectorTable(NVIC_VectTab_FLASH, (uint32_t)&_isr_vectorsflash_offs);

Welche Vor- und Nachteile ergeben sich, wenn die Tabelle im RAM oder 
Flash ist?

Hier im Forum wurde behauptet, dass die IRQ Ausführung bei der Tabelle 
im RAM schneller ist. Das kann ich mir nicht vorstellen.


Danke schon einmal für eure Antworten!
Ich freue mich, wieder etwas Neues zu lernen :)

Autor: A. K. (prx)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Florian Micro schrieb:

> Welche Vor- und Nachteile ergeben sich, wenn die Tabelle im RAM oder
> Flash ist?

Üblicherweise hat man sie genau dann im RAM, wenn das ganze Programm 
dort liegt, weil man grad am Debuggen ist und es noch reinpasst.

> Hier im Forum wurde behauptet, dass die IRQ Ausführung bei der Tabelle
> im RAM schneller ist. Das kann ich mir nicht vorstellen.

Das ROM hat ggf. Waitstates. Allerdings meine ich mich zu erinnern, dass 
der ROM-Zugriff parallel zum Stack-Push der Register stattfindet, so 
dass es evtl. keine Rolle spielt.

Autor: Lasse S. (cowz) Benutzerseite
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Was dann doch sogar dafür sprechen würde, die Tabelle in das ROM zu 
packen, damit man einen RAM-Zugriff weniger hat, oder?

Autor: A. K. (prx)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Durchaus möglich.

Autor: LTC1043 (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Florian Micro schrieb:
> Welche Vor- und Nachteile ergeben sich, wenn die Tabelle im RAM oder
> Flash ist?

Wenn sie im Flash liegen kannst du sie zur Laufzeit deines Programmes 
schwer verändern.

Manchmal ist das aber gewünscht.

Oder zur Sicherheit, du hast die Tabelle des Bootloaders im Flash (der 
startet dadurch immer d beim Flashen deiner Applikation die 
Resetvektoren im Flash nicht überschrieben werden) und die Tabelle der 
Applikation im RAM. Der Bootloader wechselt vor dem Starten der 
Applikation die Tabelle von Flash zu RAM.

Autor: A. K. (prx)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Wobei das Flash meist gross genug ist, um mehrere Vektortabellen fassen 
zu können. ;-)

Beim Cortex M3/M4 sind die ja nicht fixiert.

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net