hallo ,weiss jemand, wie man verhindert, dass die interupt-Vectoren dazugelinkt werden und stattdessen der C-startup-code direkt bei 0x0000 beginnt? Gruß Martin
Praktisch nur, indem Du ein eigenes crtX.o nimmst. Nur, warum willst Du das unbedingt? Die paar Bytes machen doch selbst im Bootlader das Kraut nicht fett.
was bitte ist "crtX.o"? ist das der Startup-Code? es sind genau 0x70 bzw 112 byte. wenn ich diese weg hätte, dann könnte ich den nächstkleineren Bootbereich wählen und bekäme meine Appikation unter. Z.z. Passt nicht beides (boot + Applikation) in den mega162 Gruß Martin
> was bitte ist "crtX.o"? ist das der Startup-Code?
Ja, crtm162.o in Deinem Falle.
Derzeit sind die Vektoren nicht optional angelegt. Es wird die
gesamte section .vectors geladen, die außer dem Reset-Vektor auch die
Interruptvektoren enthält.
das verleitet mich zu der Frage: würde denn ein C-Programm auch ohne Startup code laufen, wenn wie bei mir keine Interrupts benutzt werden, aber Unterprogrammaufrufe einschliesslich boot_page_erase(), boot_page_fill(), boot_page_write(), boot_rww_enable(), boot_rww_busy() verwendet werden. und, wie schalte ich dann die crtm162.o aus? Gruß Martin
Das ist opensource -- guck Dir doch bitten den Startup-Code einfach mal an. Warum soll ich Dir das alles soufflieren? Aus'm Kopf: außer den Vektoren ist noch das Löschen von .bss und das Umkopieren von .data dort drin. Viel mehr isses nich. Normale Bibliotheksfunktionen sind also nicht betroffen, und ohne jetzt nachgucken zu wollen würde ich sagen, daß Deine Sachen ohnehin alles Makros sind, gar keine Funktionen. Du schaltest sie aus, indem Du sie nicht mit linkst. Wie der Compiler-Treiber den Linker aufruft erfährst Du, indem Du zu den CFLAGS ein -v hinzufügst.
Danke Jorg ich trau mich schon gar nicht zu fragen: wo finde ich denn den offenen code? Gruß Marin
Bei WinAVR gibt's extra eine `src' distribution, die enthält die Quellcodes zu allem. Wenn Du aber nur gcrt1.S haben willst, kannst Du Dich auch durch die CVS-Quellen hangeln: http://savannah.nongnu.org/cgi-bin/viewcvs/avr-libc/ Der relative Pfad ist avr-libc/crt1/gcrt1.S.
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.