interrupt-Vectoren beim GCC/ATmega!62

Gast #75305
Lesenswert?

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
Lesenswert?

> 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
Lesenswert?

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
Lesenswert?

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.

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