grct1.S anpassen

Gast #285054
Lesenswert?
• ▲
▼
Hallo,

Wie kann ich die Startup-Datei gcrt1.S für mich anpassen und einbinden
(bzw. wo finde ich Literatur, wie ich das mache)?

So wie ich es verstehe, sind die cpu-abhängigen Files (z.B. crtm32.o)
device-spezifische Übersetzungen des gcrt1.S?

Vielen Dank, Stefan Kleinwort
Moderator Persönliche Seite #285055
Lesenswert?
• ▲
▼
> Wie kann ich die Startup-Datei gcrt1.S für mich anpassen
> und einbinden

Aus den avr-libc-Quellen kopieren.  Dort angucken, wie sie für
die einzelnen devices compiliert (oder assembliert) wird, und
das entsprechend in dein Makefile übernehmen.  Mit avr-gcc -v
ansehen, wie er den Job linkt, danach eine entsprechende
Kommandozeile für avr-ld in dein Makefile einbauen, die alles
genau so macht, nur deine crt.o-Version nimmt.

Was willst du denn eigentlich tun?  Normalerweise muss man diese
Datei nicht ändern.

> So wie ich es verstehe, sind die cpu-abhängigen Files (z.B.
> crtm32.o) device-spezifische Übersetzungen des gcrt1.S?

Ja.
Gast #285056
Lesenswert?
• ▲
▼
Hallo Jörg,

vielen Dank für Deine Antwort.

Ich möchte einen Bootloader in mein Hauptprogramm integrieren. Der
Bootloader soll nicht nur Standalone nach einem Reset ein
Programm-Update ermöglichen, sondern auch dem Programm die Routinen zum
Flash-Beschreiben zur Verfügung stellen. Um das Ganze auch debuggen zu
können, wollte ich beides gemeinsam übersetzen. Alternativ überlege ich
mir, die Flash-Routinen des Bootloaders über eine erweiterte
Vector-Tabelle dem Normal-Programm zugänglich zu machen (so wie das
früher bei DOS mit den SW-Interrupts gemacht wurde).

Deshalb wollte gcrt1.S klonen, damit ich eine Version für den
Bootloader und eine andere für das Normalprogramm habe. In der
Bootloader-Version sollen dann die Bootloader-Vektoren mit dem
entsprechenden Offset stehen.

Sieht alles etwas kompliziert aus ... als Notnagel werde ich das
Bootloader.bin in ein .o wandeln und beim main dazulinken (so wie Du es
vor ein paar Tagen hier beschrieben hast).

Viele Grüße, Stefan

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.