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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren