Gast
#75303
hallo ,weiss jemand, wie man verhindert, dass die interupt-Vectoren dazugelinkt werden und stattdessen der C-startup-code direkt bei 0x0000 beginnt? Gruß Martin
|
Anzeige
|
interrupt-Vectoren beim GCC/ATmega!62
Gast
#75303
hallo ,weiss jemand, wie man verhindert, dass die interupt-Vectoren dazugelinkt werden und stattdessen der C-startup-code direkt bei 0x0000 beginnt? Gruß Martin
Gast
#75304
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.
Gast
#75305
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
Gast
#75306
> 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.
Gast
#75307
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
Gast
#75308
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.
Gast
#75309
Danke Jorg ich trau mich schon gar nicht zu fragen: wo finde ich denn den offenen code? Gruß Marin
Gast
#75310
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.
Gast
#75311
ok vielen dank, werde es mir mal ansehen Gruß Martin Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|