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
> 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.
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.