In App von Bootloader springen

OP #5383530
Lesenswert?
• ▲
▼
hallo,

es wird oft vorgeschlagen hiermit:
1
void (*start)( void ) = 0x0000;
von einem Bootloader in die Applikation zu springen.

Wenn ich nun mit
1
 start();
in die Applikation springe, verschwende ich dann nicht ein wenig platz 
auf meinem stack? wegen rücksprungadresse und retten der Register bei 
einem funktionsaufruf? ist da
1
asm ("jmp 0000")
nicht sauberer?
(Firma: @home) #5383547
Lesenswert?
• ▲
▼
Sina A. schrieb:
> in die Applikation springe, verschwende ich dann nicht ein wenig platz
> auf meinem stack? wegen rücksprungadresse und retten der Register bei
> einem funktionsaufruf? ist daasm ("jmp 0000")

ich mache zwar einen jmp in meinem bootloader, aber nur um den footprint 
klein zu halten.
ansonsten dürfte das egal sein, wenn wie es sollte der stackpointer in 
der applikation neu initialisiert wird, sprich alles auf dem stack wird 
verworfen.


mt
Persönliche Seite #5384238
Lesenswert?
• ▲
▼
Sina A. schrieb:
> es wird von addresse 0 nicht direkt meine main aufgerufen, sondern
> zunächst die c runtime Environment durchlaufen, die dann alles resetet?

Ich kenne Deine Entwicklungsumgebung nicht. Üblich ist es, den 
startup-Code zu verwenden, den der Compiler mitliefert.

Was liegt denn bei Deinem Controller an Adresse 0?

Wenn das ein AVR ist, dann liegt da der Reset-Vektor.

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.