www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik TCPIP Stack von Microchip


Autor: alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich versuche schon ein Paar tage pic32 richtig zu programieren und 
klappt es irgendwie nicht. Ich arbeite mit Projekt aus TCPIP ENCX24J600 
Demo App Ordner.

Mir bringt Compiler folgende Fehlermeldung:

In file included from ./HardwareProfile.h:57,
                 from ../Microchip/Include/TCPIP Stack/TCPIP.h:60,
                 from MainDemo.c:94:
../Microchip/Include/TCPIP Stack/XEEPROM.h:57:52: TCPIP 
Stack/SPIEEPROM.c: No such file or directory

kurze Hardwarebeschreibung:

- PIC32 Starter kit
- I/O Expansion board
- ENCX24J600


Software:

- TCP/IP Stack von Microchip

Kann man überhaupt diesen Project für TCP Client nutzen? Was genau 
brauche ich dazu, welche files?

Ich wäre sehr dankbar, wenn mir jemand erklären könnte diese 
Fehlermeldung und TCPIP Stack Konfiguration.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Stack/SPIEEPROM.c: No such file or directory

Zwei Möglichkeiten:
No such file          Datei nicht gefunden
No such directory     Verzeichnis nicht gefunden

Irgendeine falsche Pfadangabe würde ich vermuten.
Oder Sonderzeichen/Leerzeichen im Pfad.

Autor: heinzhorst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du mal im entsprechenden Verzeichnis nachgesehen, ob die Datei 
wirklich nicht vorhanden ist? Eigentlich brauchst du die auch nur wenn 
du eine Webseite im MPFS-Format auf einem externen EEPROM ablegst. Wenn 
du den Webserver garnicht nutzt, dann versuch mal, die entsprechenden 
Präprozessordirektiven in det TCPIPConfig.h auszukommentieren.

Autor: Simon L. (simon_l)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich hatte auch schonmal so ein ähnliche Prob mim MPLAB, ich hatte mein 
Projekt in Eigene Datein abgelegt. Er hat sich dann an der ewig langen 
Ordnerstruktur verschluck, probier doch mal ob es klapp wenn den 
Projektordner direkt auf C: anlegst. Die Fehlermeldung war da auch 
ähnlich unhilfreich ;)

Gruß Simon

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke für eure Antworten.

Ich möchte erstmal rein TCP Client Anwendung auf dem PIC laufen lasen.
Wenn der PIC IP hat, soll er mir nur Antwort zu PC Program auf Port XXX 
schicken "Hallo". Das wäre mein Ziel.

STACK_USE_MPFS2  das wäre dann für Webseite ?

Aber im Stack gibt es so viel Möglichkeiten, dass ich im Moment nicht 
damit zurecht komme.


Alex

Autor: heinzhorst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einfach mal in Ruhe die Konfigurationsmöglichkeiten in der TCPIPConfig.h 
durchlesen. Alles, was du für dein Projekt nicht brauchst schmeißt du 
einfach raus (Kommentarzeile aus dem #define machen). Für so etwas 
relativ simples, wie du vor hast brauchst du eigentlich nur:
#define STACK_USE_ICMP_SERVER
#define STACK_USE_GENERIC_TCP_CLIENT_EXAMPLE
#define STACK_USE_DNS
#define STACK_USE_NBNS

Sieh dir auch mal die GenericTCPClient.c an. Das ist schon so ziemlich 
genau das, was du vor hast.

MPFS ist ein simples Dateiformat, mit dem du Webseiten im Flash des 
Controllers oder auf einem externen SPI-EEPROM ablegen kannst. Die 
Webseiten erstellst du einfach mit einem gewöhnlichen HTML-Editor (Auf 
schlanken Code achten!). Beim Microchip TCPIP-Stack wird das Tool 
"Microchip MPFS Generator" mitgeliefert, mit dem du nun deine Webseite 
ins MPFS-Format umwandeln kannst.

Autor: alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ,



endlich hat es geklappt mit (HTTP weg ) und ich konnte ein hex file 
generieren.
Mein Board bekommt eine IP.

Ich möcht jetzt dass mein PIC mir eine Nachricht sendet "Hallo " auf ein 
Port. In welchem File muss ich das ändern.

Ich vermute in TCP.c aber kann nicht was entsprechendes finden.

Könnte mir jemand sagen, ob ich auf dem richtigen Weg bin.
Vielleicht noch ein Paar Tips, wie ich das am besten machen soll.

Danke Alex

Autor: alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hilfe!!!

ich will für TCP Client BerkeleyTCPClientDemo.c nehmen.

Ich will jetzt eine feste IP definieren

Könnte jemand mir dabei helfen?

#define PORTNUM 5000
static ROM BYTE ServerName[] =  "X";
// This is specific to this HTTP Client example
static BYTE sendRequest[] = "Hallo";

....
void BerkeleyTCPClientDemo(void)
{
  #if defined(STACK_USE_DNS)
    static SOCKET bsdClientSocket;
    static struct sockaddr_in addr;
    char recvBuffer[9];
    int i;
    int addrlen;


..........


case BSD_CONNECT:
            // addr.sin_addr.S_un.S_addr destination IP address was set 
earlier in DNS step
            addr.sin_port = PORTNUM;
            addrlen = sizeof(struct sockaddr);

            if(connect( bsdClientSocket, (struct sockaddr*)&addr, 
addrlen) < 0)
              return;

            BSDClientState = BSD_SEND;
            // No break needed

        case BSD_SEND:
            //send TCP data
            send(bsdClientSocket, (const char*)sendRequest, 
strlen((char*)sendRequest), 0);
            BSDClientState = BSD_OPERATION;
            break;

Autor: heinzhorst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
alex schrieb:
> Ich will jetzt eine feste IP definieren

Denke mal, du meinst eine feste IP für den Server, an den du etwas 
senden möchtest.
static ROM BYTE ServerName[] =  "X";

hier musst du einfach statt "X" die IP oder URL des Server eintragen, an 
den du dein "Hallo" senden möchtest.
z.B.
static ROM BYTE ServerName[] =  "www.mein-server-im-netz.de";

oder
static ROM BYTE ServerName[] =  "192.168.1.123";

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.