AVR C-Code kompilieren mit Cygwin

Gast #2573477
???

Unter cygwin geht das genauso, wie unter Windows mit WinAVR. Wenn du ein 
passendes makefile hast, dann nimm das. Eventuell musst du da drin ein 
paar Pfade anpassen.

Manfred W. schrieb:
> Mit gcc beginnts, aber wie gehts weiter?

Das beginnt nicht mit gcc, sondern mit avr-gcc.

Oliver
OP #2574041
Grüß euch.

Also der Zweck dabei ist, das mit WinAVR eine falsche Dateigröße 
kompiliert. Dadurch wird die Binary vom Bootloader nicht mehr geladen 
bzw. ist zu groß für den Flashspeicher.

Der Code selbst ist nicht von mir. Ich möchte ihn nur kompilieren.
Unter DEBIAN-Linux soll das angeblich korrekt funktionieren. Das zu 
installieren wollte ich mir jetzt allerdings ersparen.

Das Kompilat muß exakt 61440 Bytes groß sein, damit der Bootloader es 
erkennt.
Meines hat mit WinAVR-20100110 eine größe von 62694 Bytes. Anscheinend 
wird da noch irgendein Müll mitreingepackt.

Nun dachte ich vielleicht gehts mit Cygwin.
Gast #2574073
Da denkst du falsch, ein avr-gcc erzeugt unter cygwin den selben Code 
wie unter Windows, wenn er die gleiche Versionsnummer hat, und auch die 
gleiche avrlibc-Version benutzt.

Wenn das älterer Sourcecode ist, versuch es mal mit WinAVR-2007xxxx (der 
letzten 2007er). Der darin enthaltene avr-gcc 3.4 (?) erzeugt meistens 
kleineren Code als die neueren WinAVR-Varianten.

Oliver
OP #2574591
Ich habe jetzt die letzte 2007 Version versucht.
Leider läuft der wiederum nicht durch:
1
D:\Downloads\SD2IEC DTV64>make CONFIG=config-larsp
2
  MKDIR  obj-m644p-larsp
3
  CONF2H config-larsp
4
  AS     fastloader-ll.S
5
  CC     buffers.c
6
  CC     d64ops.c
7
cc1.exe: warnings being treated as errors
8
d64ops.c: In function 'd64_open_write':
9
d64ops.c:1307: warning: 's' may be used uninitialized in this function
10
d64ops.c:1307: warning: 't' may be used uninitialized in this function
11
make: *** [obj-m644p-larsp/d64ops.o] Error 1

Was hingegen mit der WinAVR-20100110 problemlos funktioniert hat.
So ein Mist aber auch.

Muß ich mir jetzt extra DEBIAN antun?
#2574634
Der Compiler soll laut dem -Werror Flag alle Warnungen als Fehler 
betrachten und das heißt, dass er bei Warnungen den Kompiliervorgang 
abbricht.

Wenn also beim Kompilieren 2 Warnungen auftreten:
> d64ops.c:1307: warning: 's' may be used uninitialized in this function
> d64ops.c:1307: warning: 't' may be used uninitialized in this function

bricht der den Kompiliervorgang mit einem Fehler ab.

Was du tun musst: das -Werror Flag einfach aus dem Makefile entfernen.

Gruß Oliver
#2574645
Manfred W. schrieb:
> Bitteschön...

Ich wußte bisher nicht, daß man ganze Romane als Makefile schreiben muß. 
Wer soll denn sowas lesen.

Beim WINAVR kann man einige Schalter ausprobieren, die noch viel 
zusammendampfen. Dazu steht auch was in der Artikelsammlung.

Oder zippe alles zusammen und sende es als Dateianhang. Dann kann Dir 
das bestimmt jemand compilieren.



Peter
OP #2574664
Das kompilieren möchte ich ja gerne selbst übernehmen, da ich noch 
einige Änderungen am Code vornehmen möchte.

Aber,.... jetzt hat es tatsächlich funktioniert und er hat auch die 
korrekte größe kompiliert.
Einige Warnungen wurden ausgegeben aber die werden halt ignoriert. Hoffe 
das hat jetzt keine Auswirkung auf das Kompilat. Aber die neuere WinAVR 
Version zeigt diese ja nicht mal an, also sind die womöglich sowieso zu 
ignorieren.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.