Forum: Mikrocontroller und Digitale Elektronik Problem beim "make all" WinAVR -


von steve (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich habe versucht über DOS-Fenster ein C-Programm in .hex zu übersetzen.

WinAVR-20090313

Leider bekomme ich Haufen Fehler! Siehe Anhang.

Was mache ich falsch?
Mein C-Code sieht folgender Maße aus.

>//hello.c
>#include <avr/io.h>
>
>int main(void)
>{
>    DDRB = 0x1F;
>
>    DDRB = (1<<DDB0)|(1<<DDB1)|(1<<DDB2)|(1 << DDB3)|(1 << B4);
>}

und mein Makefile kommt nach im nächsten Anhang

von steve (Gast)


Angehängte Dateien:

Lesenswert?

so mein makefile

von lightninglord (Gast)


Lesenswert?

schau dir mal diese zeile ganz ganz genau an:
1
 DDRB = (1<<DDB0)|(1<<DDB1)|(1<<DDB2)|(1 << DDB3)|(1 << B4);

ganz besonders das hier (1<< B4), das ist in der iom8.h nicht 
deklariert, ergo bekommst nen Syntaxfehler angezeigt. Korrigiere deinen 
Fehler und dein "Programm" funktioniert, ich jedenfalls komms dann 
compiliert ( mit deinem makefile )

von holger (Gast)


Lesenswert?

Wenn man das Borland Make mit einem AVR-GCC makefile
benutzt könnte das schon problematisch sein ;)

von steve (Gast)


Lesenswert?

@lightninglord
danke für den Tipp

@holger
Wie meinst du das, gibt es da verschiedene Versionen?
Ich habe alles so gemacht wie es in Makefile stand!
Was sollte ich anders machen?

von holger (Gast)


Lesenswert?

>Wie meinst du das, gibt es da verschiedene Versionen?

Auf deinem Rechner gibt es wohl verschiedene Versionen.
Einmal das make vom Borland Compiler und das make
vom AVR-GCC. Im Pfad wurde halt das vom Borland Compiler
zuerst gefunden. Gib statt einfach nur "make all" halt
"PfadzuAVRGCCmake\make all" ein.

von rotuA (Gast)


Lesenswert?

> Wie meinst du das, gibt es da verschiedene Versionen?
Ja, WinAVR bringt seine eigene mit, vermultich von GNU.
> Ich habe alles so gemacht wie es in Makefile stand!
Das Problem ist ja vermutlich (unter anderem) welches make das makefile 
aufruft.
> Was sollte ich anders machen?
Die Pfade so anpassen, dass das passende make aufgerufen wird. Evtl. 
programmierst du ja auch noch mit Borland, dann wird es eklig. Ich kenne 
micht unter Windows nicht wirklich gut aus. Unter Linux würde ich ein 
alias nehmen, unter Windows -> keine Ahnung. Evtl. eine batch-Datei, 
oder du versuchst unter WinAVR was zu drehen, und führst dann make all 
unter WinAVR aus.
Dein Screenshot sugeriert mir, dass du die make all in der DOS-Box 
ausführst, oder öffnet die WinAVR?


Den Tipp von Holger kannst du auch in ein Batch-File schmeißen, ersprt 
Tipparbeit. ;-) Natürlich nur, wenn du aus der DOS-Box heraus make 
aufrufst.

von mike (Gast)


Lesenswert?

Hallo Jungs Ihr hattet recht.

Danke!!!

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
Noch kein Account? Hier anmelden.