Hallo erstmal! Hätte da mla ne Frage zum Webserver. Bekomme die Source-Files irgendwie nicht kompiliert, das Avr-Studio gibt mir da diverse Fehlermeldungen aus. Wie ist da die richtige Vorgehensweise? Und warum hat das kompilierte Hex-File 62kb, der Mega32 aber nur 32kb Flash?
Kann oder will mir keiner helfen? Ging das bei Euch problemlos zu kompilieren? Hab da einen Fehler in der Clock.c. Bei WinAvr und auch beim AVR-Studio. Die erstellen HEX-Files kann ich nicht nehmen, weil ich einen anderen Quarz benutze.
Ohne ein paar mehr Angaben kann und wird dir hier keiner helfen können. Woher sollen wir deine Fehlermeldungen wissen. Um das richtig Vorgehen zu verstehen, empfehle ich die Turorials auf diese Seite Das mit den Dateigrößen liegt am Format, in dem eine hex Datei gespeichert ist. Außerdem ist das hier ein Forum und kein Chat, hier kann eine Antwort auch schon mal ein wenig dauern. Mike
Die Fehlermeldung ist folgende : \webserver/clock.c:48: undefined reference to `timer_enable_int' Kann ich die ganze Sache auch mit einem 8 MHZ Quarz betreiben, wenn ichs im Prog ändere? Oder ist das zu langsam? Wo sind denn die Tutorials?
Das ist nicht der Compiler, sonder der Linker, der die Fehlermeldung wirft. Er will dir sagen, dass er eine referenz nicht auflösen kann (meist weil diese nicht existiert oder er sie nicht finden kann, z.B. weil eine Datei nicht kompiliert werden konnte) Gruß Andreas
Danke erstmal für die Antwort. Was kann ich den dagegen tun? Habt ihr den Source-File problemlos kompiliert bekommen? Wie ist das denn jetzt mit dem Quarz gehen 8 MHZ auch?????
Ich wollte mir den WebServer von hier bzw. von Ulrich Radigs Seite nachbauen. Habe mir eine 3 COm - ISA- Karte besorgt, den uC + eigenes Experimentierboard hab ich da. Es gibt nun folgende Probleme : Wie ist die Anschlussbelegung für die 3COm-Karte? Und wie bekommen ich den Source-Code aus dem Download-Beriech auf dieser Seite kompiliert, wenn immer die oben gennate Fehlermeldung kommt????
Ok, die Sache mit dem Kompilieren hat sich erledigt, auf meinem Laptop gings leider nicht dafür aber irgendwie auf meinem Desktop. Wo muss ich denn einstellen, welche Netzwerk-Karte ich verwende? Oder erkennt das System das automatisch?
Der Webserver von Ulrich läuft auf Realtek-Netzwerkkarten. Die sind IMHO inkompatibel zu 3COM...
Ich bin ja wirklich ein ruhiger und besonnener Mensch, aber ich treibt mich heute so leid es mir tut zum Wahnsinn. Niemand antwortet konkret auf meine Fragen(z.B. wie ich die 3COM mit dem Mega32 verbinden muss und ob und was ich in der Software verstellen muss, damit der uc die Karte erkennt) sondern stellt irgendwelche Fragen oder macht komische Kommentare. Das weiß ich auch das Ulrichs Server nicht mit ner 3COM funzt, deswegen nehm ich ja die Software von hier. Wäre schön wenn mir mal einer konkret auf meine Fargen antworten könnte. Danke Mfg raimund
>Software von hier Wo findet man das "hier"? Ein Link zu dem Thema würde helfen. Interessanterweise habe ich noch keinen Webserver gesehen, der mit 3COM-Karten arbeitet. Und sei bitte nicht gleich eingeschnappt, wenn Leute noch "etwas mehr Input" brauchen. Hier im Forum gibt es neben Ulrich Radigs Webserver meiner Meinung nach nur noch den von Holger Buß, und der verwendet auch einen Realtek-Chip. Das liegt vermutlich daran, dass 3COM sich mit der Veröffentlichung der Dokumentation seiner Netzwerk-Chips zurückhält. Ansonsten sollte jede ISA-Netzwerkkarte gleich angeschlossen werden. >Wäre schön wenn mir mal einer konkret auf meine Fargen antworten >könnte. Wäre auch schön, wenn du ein paar (für dich scheinbar nicht relavante, für uns aber schon wichtige) Infoamtionen rüberkommen lassen würdest. Rumqengeln führt schnell zu bösen Antworten...
Kleiner Hinweis am Rande: Du befindest dich hier auf mikrocontroller.NET Die von dir genannte Seite lautet mikrocontroller.COM... Aber scheinbar hat bis jetzt noch niemand ein Problem so wie du es schilderst gehabt.
Um nochmal nachzuhaken "\webserver/clock.c:48: undefined reference to `timer_enable_int'" ist das wirklich der EINZIGE Fehler den du bekommst? Poste bitte mal den gesamten Output. Meist gehen dem Linkerfehler ignorierte Warnungen voraus. Compilierst du mit dem -Wall Flag? Gruß Andreas
Noch ein off-topic Hinweis: Mikrocontroller.com betreibt Framing und zeigt das Forum hier ohne Navigation etc an. I weiß nicht ob das mit den Admins so abgesprochen ist und so gedacht ist, aber bei dem Scheißdesign von Mikrocontroller.com könnte man den Eindruck gewinnen, das Forum gehört dazu weils anderst aussieht... Gruß Andreas
@Andreas : Build started 19.5.2006 at 16:34:46 set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=fat.lst -std=gnu99 fat.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > fat.d; \ [ -s fat.d ] || rm -f fat.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=mmc.lst -std=gnu99 mmc.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > mmc.d; \ [ -s mmc.d ] || rm -f mmc.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=webpage.lst -std=gnu99 webpage.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > webpage.d; \ [ -s webpage.d ] || rm -f webpage.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=telnet.lst -std=gnu99 telnet.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > telnet.d; \ [ -s telnet.d ] || rm -f telnet.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=tcp.lst -std=gnu99 tcp.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > tcp.d; \ [ -s tcp.d ] || rm -f tcp.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=uart.lst -std=gnu99 uart.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > uart.d; \ [ -s uart.d ] || rm -f uart.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=clock.lst -std=gnu99 clock.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > clock.d; \ [ -s clock.d ] || rm -f clock.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=interrupt4.lst -std=gnu99 interrupt4.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > interrupt4.d; \ [ -s interrupt4.d ] || rm -f interrupt4.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=icmp.lst -std=gnu99 icmp.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > icmp.d; \ [ -s icmp.d ] || rm -f icmp.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=ip.lst -std=gnu99 ip.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > ip.d; \ [ -s ip.d ] || rm -f ip.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=httpd.lst -std=gnu99 httpd.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > httpd.d; \ [ -s httpd.d ] || rm -f httpd.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=ftpd.lst -std=gnu99 ftpd.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > ftpd.d; \ [ -s ftpd.d ] || rm -f ftpd.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=checksum.lst -std=gnu99 checksum.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > checksum.d; \ [ -s checksum.d ] || rm -f checksum.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=arp.lst -std=gnu99 arp.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > arp.d; \ [ -s arp.d ] || rm -f arp.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=analog.lst -std=gnu99 analog.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > analog.d; \ [ -s analog.d ] || rm -f analog.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=rtl8019.lst -std=gnu99 rtl8019.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > rtl8019.d; \ [ -s rtl8019.d ] || rm -f rtl8019.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=3c5x9.lst -std=gnu99 3c5x9.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > 3c5x9.d; \ [ -s 3c5x9.d ] || rm -f 3c5x9.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.lst -std=gnu99 main.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > main.d; \ [ -s main.d ] || rm -f main.d -------- begin -------- avr-gcc (GCC) 3.4.6 Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiling: main.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.lst -std=gnu99 main.c -o main.o In file included from main.h:17, from main.c:29: C:/WinAVR/avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>." Compiling: 3c5x9.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=3c5x9.lst -std=gnu99 3c5x9.c -o 3c5x9.o In file included from main.h:17, from 3c5x9.c:49: C:/WinAVR/avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>." 3c5x9.c:730:7: warning: no newline at end of file Compiling: rtl8019.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=rtl8019.lst -std=gnu99 rtl8019.c -o rtl8019.o In file included from main.h:17, from rtl8019.c:8: C:/WinAVR/avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>." rtl8019.c:309:7: warning: no newline at end of file Compiling: analog.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=analog.lst -std=gnu99 analog.c -o analog.o In file included from main.h:17, from analog.c:1: C:/WinAVR/avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>." Compiling: arp.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=arp.lst -std=gnu99 arp.c -o arp.o In file included from main.h:17, from arp.c:8: C:/WinAVR/avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>." Compiling: checksum.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=checksum.lst -std=gnu99 checksum.c -o checksum.o In file included from main.h:17, from checksum.c:8: C:/WinAVR/avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>." Compiling: ftpd.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=ftpd.lst -std=gnu99 ftpd.c -o ftpd.o In file included from main.h:17, from ftpd.c:8: C:/WinAVR/avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>." Compiling: httpd.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=httpd.lst -std=gnu99 httpd.c -o httpd.o In file included from main.h:17, from httpd.c:8: C:/WinAVR/avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>." httpd.c: In function `httpd': httpd.c:176: warning: label `endmakepacket' defined but not used Compiling: ip.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=ip.lst -std=gnu99 ip.c -o ip.o In file included from main.h:17, from ip.c:8: C:/WinAVR/avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>." Compiling: icmp.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=icmp.lst -std=gnu99 icmp.c -o icmp.o In file included from main.h:17, from icmp.c:8: C:/WinAVR/avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>." Compiling: interrupt4.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=interrupt4.lst -std=gnu99 interrupt4.c -o interrupt4.o In file included from main.h:17, from interrupt4.c:8: C:/WinAVR/avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>." Compiling: clock.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=clock.lst -std=gnu99 clock.c -o clock.o In file included from main.h:17, from clock.c:8: C:/WinAVR/avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>." clock.c: In function `Start_Clock': clock.c:48: warning: implicit declaration of function `timer_enable_int' Compiling: uart.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=uart.lst -std=gnu99 uart.c -o uart.o In file included from main.h:17, from uart.c:8: C:/WinAVR/avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>." uart.c: In function `UART_Init': uart.c:36: warning: passing arg 1 of `fdevopen' from incompatible pointer type uart.c:36: error: too many arguments to function `fdevopen' make: *** [uart.o] Error 1 Build failed with 1 errors and 18 warnings...
Hi, so wie's aussieht sagt dir dein Compiler ziemlich genau was sache ist: ----- #warning "This header file is obsolete. Use <avr/interrupt.h>." ----- "uart.c:36: warning: passing arg 1 of `fdevopen' from incompatible pointer type" ----- uart.c:36: error: too many arguments to function `fdevopen' make: *** [uart.o] Error 1 ----- Also: Dein Linkerfehler den du ganz zu anfang gepostet hast ist logisch, der linker kann nichts linken, das nicht existiert. (In diesem falle wird uart.c nicht kompiliert) Das solltest die Warnungen beachten und rausfinden, was damit nicht stimmt. Eine Warnung in C heißt "ich kompiliere dir den scheiß zwar, aber bist du sicher dass du weißt was du tust?" In deinem Fall wird fdevopen nicht korrekt benutzt und ein veraltets Headerfile wird benutzt. Ich tippe also auf eine unpassende Versionen von Compilers/libc/quellcode. Finde raus mit welcher Version der ursprüngliche code compiliert wurde oder portiere den Code, dass er funktioniert. Gruß Andreas
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.