mikrocontroller.net

Forum: Compiler & IDEs interrupt-Vectoren beim GCC/ATmega!62


Autor: Martin Raffelsieper (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo ,weiss jemand, wie man verhindert, dass die interupt-Vectoren
dazugelinkt werden und stattdessen der C-startup-code direkt bei 0x0000
beginnt?

Gruß Martin

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Martin Raffelsieper (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Martin Raffelsieper (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Martin Raffelsieper (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Jorg

ich trau mich schon gar nicht zu fragen: wo finde ich denn den offenen
code?


Gruß Marin

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Martin Raffelsieper (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok vielen dank, werde es mir mal ansehen

Gruß Martin

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.