Webserver only w/o any other functions, single thread. Running on STM32F013+W5500

Dependencies:   NTPClient W5500Interface Watchdog device_configuration eeprom_flash mbed-rpc-nucleo mbed-rtos mbed

Fork of F103-Serial-to-Ethernet by Chau Vo

Files at this revision

API Documentation at this revision

Comitter:
olympux
Date:
Sat Sep 20 20:42:49 2014 +0000
Child:
1:fc6d2a8a4eb3
Commit message:
Initial

Changed in this revision

W5500Interface.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-rtos.lib Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/W5500Interface.lib	Sat Sep 20 20:42:49 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/teams/EthernetInterfaceW5500-makers/code/W5500Interface/#af0ed4fbca02
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Sep 20 20:42:49 2014 +0000
@@ -0,0 +1,125 @@
+/*
+*
+*  Test program for W5500 mbed Library
+
+*/
+#include "mbed.h"
+#include "EthernetInterface.h"
+#include "rtos.h"
+
+#define ECHO_SERVER_PORT   5000
+
+/** 
+* Setting DHCP or static
+*/
+//#define USE_DHCP
+
+/** 
+* Setting the platform to test
+*/
+//#define LPC
+#define ST_NUCLEO
+//#define FRDM_KL25Z
+//#define Seeeduino_Arch
+
+#ifdef LPC
+// LPC1768 & LPC11U24
+SPI spi(p5, p6, p7); // mosi, miso, sclk
+WIZnetInterface eth(&spi, p8, p9); // spi, cs, reset
+#endif
+
+#ifdef ST_NUCLEO
+// ST Nucleo
+SPI spi(PA_7, PA_6, PA_5); // mosi, miso, sclk
+EthernetInterface eth(&spi, PC_8, PC_9); // spi, cs, reset
+#endif
+
+#ifdef FRDM_KL25Z
+// Freescale FRDM KL25Z
+SPI spi(PTD2, PTD3, PTD1); // mosi, miso, sclk
+WIZnetInterface eth(&spi, PTD0, PTA20); // spi, cs, reset
+#endif
+
+#ifdef Seeeduino_Arch
+// Seeedstudio Arch
+SPI spi(P1_22, P1_21, P1_20); // mosi, miso, sclk
+WIZnetInterface eth(&spi, P0_2, P0_0); // spi, cs, reset
+    Serial pc(P1_13, P1_14); // tx, rx
+#else
+    Serial pc(USBTX,USBRX);
+#endif
+
+#ifndef USE_DHCP
+// for static IP setting
+const char * IP_Addr    = "192.168.0.120";
+const char * IP_Subnet  = "255.255.255.0";
+const char * IP_Gateway = "192.168.0.1";
+#endif
+
+
+void uart_thread(void const *args) {
+    int i = 0;
+    
+    while (true) {
+        printf("%d", i++);
+        Thread::wait(2000);
+    }
+}
+
+
+int main()
+{
+    uint8_t mac[6];
+    
+    Thread thread(uart_thread);
+    
+    mbed_mac_address((char *)mac);     // using the MAC address in LPC11U24 or LPC1178
+    mac[0] = 0x00; mac[1] = 0x08; mac[2] = 0xDC; mac[3] = 0x00; mac[4] = 0x00; mac[5] = 0x00; 
+// you can alo use WIZ550io's MAC address by enabling "USE_WIZ550IO_MAC" in wiznet.h
+    
+    pc.printf("Start\n");
+    #ifdef USE_DHCP
+      int ret = eth.init(mac); //Use DHCP
+    #else
+      int ret = eth.init(mac, IP_Addr, IP_Subnet, IP_Gateway); // static
+    #endif
+
+    if (!ret) {
+        pc.printf("Initialized, MAC: %s\n", eth.getMACAddress());
+    } else {
+        pc.printf("Error eth.init() - ret = %d\n", ret);
+        return -1;
+    }
+
+    ret = eth.connect();
+    if (!ret) {
+        pc.printf("IP: %s, MASK: %s, GW: %s\n",
+                  eth.getIPAddress(), eth.getNetworkMask(), eth.getGateway());
+    } else {
+        pc.printf("Error eth.connect() - ret = %d\n", ret);
+        return -1;
+    }
+
+    TCPSocketServer server;
+    server.bind(ECHO_SERVER_PORT);
+    server.listen();
+
+    while (true) {
+        pc.printf("\nWait for new connection...\n");
+        TCPSocketConnection client;
+        server.accept(client);
+        client.set_blocking(false, 10000); // Timeout after (10)s
+
+        pc.printf("Connection from: %s\n", client.get_address());
+        char buffer[256];
+        while (true) {
+            int n = client.receive(buffer, sizeof(buffer));
+            if (n <= 0) break;
+
+            client.send_all(buffer, n);
+            if (n <= 0) break;
+        }
+
+        client.close();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-rtos.lib	Sat Sep 20 20:42:49 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed-rtos/#56a3d044541d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Sat Sep 20 20:42:49 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/552587b429a1
\ No newline at end of file