www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik Webserver macht einfach nichts mit der 1.39er Source

Autor: Josef Kkk (zumlin)
Datum:

Hallo zusammen,

ich bin gerade dabei meinen Webserver zum Leben zu erwecken. Was
allerding komisch dabei ist, ist dass meine eigenen hex-files der
Sourceversion 1.39 nichts machen. Bei den Test-Hexes (sowohl 1.38 und
1.39) klappte alles wunderbar. Sobald ich aber ein HexFile mache (1.39)
und flashe, macht mein Webserver einfach nichts mehr. Kein Terminal,
kein Blinken. Komisch komisch.
Die 1.38er sources kann ich auch nicht compilieren, da ich eine neuere
Lib habe und daher die cbi sbi Befehle nicht funktionieren.

Weiß jemand weiter?
Autor: Josef Kkk (zumlin)
Datum:

Sodala

Hab jetzt ein bißchen in den Files rumgeschrieben. Hab eigentlich nur
USE_MMC auf 1 gestellt. Außerdem hab ich gesehen, dass noch auf die alte
Netzwerkkarte geschaltet war. Also umstellen.
Mein main.h sieht jetzt teils so aus:
/ --- Select Networkcard -------
#define USE_RTL8019   1
#define USE_3C5x9     0
//-------------------------------


//#define SYSCLK  14745600  //Quarz Frequenz in Hz
#define SYSCLK  16000000  //Quarz Frequenz in Hz
#define F_CPU  SYSCLK

#include "mmc.h"
#include "interrupt4.h"
#include "fat.h"
#include "rtl8019.h"
#include "3c5x9.h"

Jetzt hab ich leider das Problem, dass ich beim erstellen des Hexfiles
nen Fehler und massig warnings bekomme. Kann damit aber nichts anfangen.
Dazu muss ich noch sagen, dass ich schon vor langem in der printf() ein
Argument entfernt habe. Damit hatte ich immer Probleme und in einem
anderen Thread wurde gesagt, dass man das letzte Argument nicht
braucht.(?) Naja.

Hier dann mal meine Shellausgabe:
-------- begin --------
avr-gcc (GCC) 4.1.0
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.


Size before:
main.elf  :
section     size      addr
.text      21956         0
.data        626   8388704
.bss          94   8389330
.noinit        0   8389424
.eeprom        0   8454144
.stab      32136         0
.stabstr   12097         0
Total      66909




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:
/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete.  Use <avr/interrupt.h>."
In file included from main.h:33,
                 from main.c:29:
rtl8019.h:84:1: warning: "ISR" redefined
In file included from main.h:16,
                 from main.c:29:
/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/interrupt.h:96:1: warning: this is the location of the previous definition

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:
/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete.  Use <avr/interrupt.h>."
In file included from main.h:33,
                 from 3c5x9.c:49:
rtl8019.h:84:1: warning: "ISR" redefined
In file included from main.h:16,
                 from 3c5x9.c:49:
/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/interrupt.h:96:1: warning: this is the location of the previous definition
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:
/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete.  Use <avr/interrupt.h>."
In file included from main.h:33,
                 from rtl8019.c:8:
rtl8019.h:84:1: warning: "ISR" redefined
In file included from main.h:16,
                 from rtl8019.c:8:
/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/interrupt.h:96:1: warning: this is the location of the previous definition
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:
/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete.  Use <avr/interrupt.h>."
In file included from main.h:33,
                 from analog.c:1:
rtl8019.h:84:1: warning: "ISR" redefined
In file included from main.h:16,
                 from analog.c:1:
/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/interrupt.h:96:1: warning: this is the location of the previous definition

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:
/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete.  Use <avr/interrupt.h>."
In file included from main.h:33,
                 from arp.c:8:
rtl8019.h:84:1: warning: "ISR" redefined
In file included from main.h:16,
                 from arp.c:8:
/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/interrupt.h:96:1: warning: this is the location of the previous definition

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:
/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete.  Use <avr/interrupt.h>."
In file included from main.h:33,
                 from checksum.c:8:
rtl8019.h:84:1: warning: "ISR" redefined
In file included from main.h:16,
                 from checksum.c:8:
/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/interrupt.h:96:1: warning: this is the location of the previous definition

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:
/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete.  Use <avr/interrupt.h>."
In file included from main.h:33,
                 from ftpd.c:8:
rtl8019.h:84:1: warning: "ISR" redefined
In file included from main.h:16,
                 from ftpd.c:8:
/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/interrupt.h:96:1: warning: this is the location of the previous definition

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:
/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete.  Use <avr/interrupt.h>."
In file included from main.h:33,
                 from httpd.c:8:
rtl8019.h:84:1: warning: "ISR" redefined
In file included from main.h:16,
                 from httpd.c:8:
/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/interrupt.h:96:1: warning: this is the location of the previous definition
httpd.c: In function ‘httpd’:
httpd.c:73: warning: pointer targets in passing argument 1 of ‘printf’ differ in signedness
httpd.c:85: warning: pointer targets in passing argument 5 of ‘Search_File’ differ in signedness
httpd.c:155: warning: pointer targets in passing argument 2 of ‘Read_File’ differ in signedness
httpd.c:160: error: invalid lvalue in assignment
make: *** [httpd.o] Fehler 1
Autor: Bratwurst (Gast)
Datum:

Was für eine Source?!?
Autor: Dirk (Gast)
Datum:

Jo, der Josef ist schon ein Komiker. Möchte wohl, daß wir rumraten.
Autor: Tishima (Gast)
Datum:

Hallo!

Wenn es um den ISA-Ctrl AVR-Webserver geht, denke ich bist Du ins
falsche Forum gelandet.

http://mikrocontroller.cco-ev.de/forum/

gruß,
Bjoern
Autor: Elektrikser (Gast)
Datum:

Du hast ein aktuelles WinAVR und deine Version des Servers ist mit einer
älteren geschrieben. Entweder bindest du die deprecated.h in dein
Programm ein, oder du verwendest statt Signal () ISR() mit den richtigen
Interrupt-Vektoren. Findet man in der avrlibc-Doku.

Gruß Elektrikser
Autor: Uwe Nagel (ulegan)
Datum:

ISR ist in der Datei rtl8019.h als Register des Netzwerkcontrollers
definiert. Neuere Versionen von WinAVR verwenden ISR allerdings für
Interrupts.
Also die Definition von ISR ändern in zB. RTL_ISR und alle
Verwendungsstellen natürlich auch.
Autor: Josef Kkk (zumlin)
Datum:

Danke Uwe.

Nur so also Info für andere, die das gleiche Problem haben.

Das Register wird noch in der rtl8019.c, der org_interrupt4.c und
interrupt4.c.

Aber trotzdem ist der Fehler nicht weg. Damit ist die Warning ""ISR"
redefined" behoben. :)
Der eigentliche Fehler "httpd.c:160: error: invalid lvalue in
assignment"

Die entsprechende Zeile in der Datei:
(unsigned long) tcp_socket->File_Size = (unsigned long) tcp_socket->File_Size - 512;

Leider versteh ich nicht mal was da genau passiert.
Autor: Uwe Nagel (ulegan)
Datum:

Ich habe die Originaldatei gerade nochmal neu geladen und mit
WinAVR20070122 zu überstezen versucht. Folgendes musste ich ändern:

in main.h Zeile 17 entfernen:
//#include <avr/signal.h>

und
#define __STDIO_FDEVOPEN_COMPAT_12
vor
#include <stdio.h>
einfügen

Diese Definitionen ändern:
#if defined (_AVR_ATmega103_)
  #define Networkcard_INT_Enable()  EIMSK |= (1<<INT4);
#endif

#if defined (_AVR_ATmega128_)
  #define Networkcard_INT_Enable()  EIMSK |= (1<<INT4);
#endif

#if defined (_AVR_ATmega32_)
  #define Networkcard_INT_Enable()  GICR |= (1<<INT0);
#endif

in httpd.c Zeile 162 den ersten Typecast entfernen:
tcp_socket->File_Size = (unsigned long) tcp_socket->File_Size - 512;
der zweite Typecast dürfte überflüssig sein, eventuell sollte man aber
512l schreiben

in rtl8019.h Zeile 84 ISR durch RTL_ISR ersetzen:
#define RTL_ISR  RTL_REG_OFFSET+0x07

in rtl8019.c Zeile 153, 185, 220 und 306 ISR durch RTL_ISR ersetzen
in interrupt4.c Zeile 24, 30 und 48  ISR durch RTL_ISR ersetzen

in clock.c Zeile 49 ändern:
//  timer_enable_int(_BV(TOIE1));
  TIMSK |= (1<<TOIE1);

3c5x0.c und rtl8019 könnten ein newline, also einen Zeilenumbruch am
Textende vertragen

Übrig geblieben sind viele Warnungen vom Typ:
arp.c:64: warning: pointer targets in passing argument 1 of
'Write_Ethernet_Frame' differ in signedness
diese schaden aber nicht.
Ob es läuft, kann ich gerade nicht prüfen, ich denke aber schon.
Ernstere Probleme hatte ich mit der webcam-Version V1.38 von Ulrich
Radig. Diese läuft mit dem neuen WinAVR nur, wenn man die Optimierung
mit -o0 abschaltet. Es liegt wohl an wegoptimierten Zeitschleifen in der
Kamera-initialisierung, der Webserver alleine läuft auch mit -os.

Gruß Uwe




Autor: Josef Kkk (zumlin)
Datum:

Oha darauf wäre ich wohl nie gekommen. Mit µCn hab ich noch nicht
wirklich Erfahrungen gesammelt. Außder das Schulwissen betreffend C167
hab ich da leider keine Ahnung. :)

Danke schon mal im Vorraus. Das werd ich gleich mal testen wenn ich
daheim bin.
Autor: Josef Kkk (zumlin)
Datum:

Bring die Kiste einfach nicht zum laufen. Hab jetzt alles so gemacht wie
oben aber jetzt rührt sich da überhaupt nichts mehr. Weder IP vom Router
noch ne Ausgabe am Terminal. Komisch. Muß ich die Netzwerkkarte
eingelich irgendwie besonders präparieren? Bei den 3Com Karten muß man
ja ein bißchen was umstellen bevor man die dann für den Webserver
benutzen kann.

Ich glaub ich werf das ganze mal in ne Ecke und kram das erst wieder im
Winter raus wenn ihr keine Idee mehr habt. :(

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




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net