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.
>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.
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.
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
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
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:
1 | #define STACK_USE_ICMP_SERVER
|
2 | #define STACK_USE_GENERIC_TCP_CLIENT_EXAMPLE
|
3 | #define STACK_USE_DNS
|
4 | #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.
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
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;
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.
1 | 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.
1 | static ROM BYTE ServerName[] = "www.mein-server-im-netz.de"; |
oder
1 | static ROM BYTE ServerName[] = "192.168.1.123"; |
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.