mikrocontroller.net

Forum: Compiler & IDEs Bootloader linken


Autor: Udo Schaumburger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.

Ich habe für den ATmega128 einen Bootloader in C geschrieben.
Der muss natürlich in den NRWW-Bereich.
Das heisst ich muss im Makefile dem Linker die Anweisung geben dass er
bei einer anderen Adresse anfangen soll.

Wenn Ich Bootloader und Hauptprogramm als einzelne Programme
kompilieren würde wüsste ich wie ich das bewerkstelligen soll.
Das wäre aber eine Platzverschwendung weil dann sowohl unten im NRWW
Bereich als auch oben die ganzen SubRoutinen für die USART doppelt
stehen würden.
Gibt es da keine einfachere Lösung als 2mal kompilieren und dann die
Hex-Files zusammenzuschnipseln?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was machst du, wenn du die main application nachladen willst?  Darfst
du dann nichts mehr an den Routinen für den Bootloader-Routinen für
die UART ändern, damit sie immer die exakt gleichen Adressen behalten?

Das würde ich nicht tun.  Bau dir an den Anfang des Bootloaders eine
jump table.  Die main app benutzt dann ausschließlich die jump table,
damit kann man beide Teile separat linken und auch separat flashen.

Autor: Stefan Kleinwort (_sk_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mach es so, wie Jörg es oben beschrieben hat.

Wenn Du zum ersten Flashen App und Bootloader als ein File laden
willst, bietet sich das Vorgehen an, wie es Jörg hier beschrieben hat
(Binärfile mit dazulinken):

http://www.mikrocontroller.net/forum/read-2-285395...

Alles andere wird nicht einfacher, sondern viel komplizierter ...

Viele Grüße, Stefan

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
  • 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.