Forum: Mikrocontroller und Digitale Elektronik Webserver


von Raimund Kütemeier (Gast)


Lesenswert?

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?

von Raimund Kütemeier (Gast)


Lesenswert?

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.

von Mike S. (memme)


Lesenswert?

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

von Raimund Kütemeier (Gast)


Lesenswert?

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?

von Baitronic (Gast)


Lesenswert?

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

von Raimund Kütemeier (Gast)


Lesenswert?

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

von Manfred (Gast)


Lesenswert?

Wäre vielleicht ersteinmal interessant von welchem Webserver du redest.

Gruß

Manfred

von Raimund Kütemeier (Gast)


Lesenswert?

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

von Raimund Kütemeier (Gast)


Lesenswert?

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?

von Rahul (Gast)


Lesenswert?

Der Webserver von Ulrich läuft auf Realtek-Netzwerkkarten. Die sind IMHO
inkompatibel zu 3COM...

von Raimund Kütemeier (Gast)


Lesenswert?

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

von Rahul (Gast)


Lesenswert?

>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...

von Raimund Kütemeier (Gast)


Lesenswert?


von Raimund Kütemeier (Gast)


Lesenswert?

3Com scheint doch zu gehen.

von Rahul (Gast)


Lesenswert?

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.

von unbekannter (Gast)


Lesenswert?

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

von unbekannter (Gast)


Lesenswert?

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

von Raimund Kütemeier (Gast)


Lesenswert?

@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...

von Baitronic (Gast)


Lesenswert?

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