www.mikrocontroller.net

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


Autor: Josef Kkk (zumlin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
Was für eine Source?!?

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo, der Josef ist schon ein Komiker. Möchte wohl, daß wir rumraten.

Autor: Tishima (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
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 bestätigst du, die Nutzungsbedingungen anzuerkennen.