/*-----------------------------------------------------------------------------------*/ static void tcpip_init_done(void *arg) { ip_addr_t ipaddr, netmask, gw; sys_sem_t *sem; sem = (sys_sem_t *)arg; IP4_ADDR(&gw, 192,168,1,1); IP4_ADDR(&ipaddr, 192,168,1,2); IP4_ADDR(&netmask, 255,255,255,0); netif_set_default(netif_add(&netif_unix, &ipaddr, &netmask, &gw, NULL, unixif_init_client, tcpip_input)); #if LWIP_IPV6 netif_create_ip6_linklocal_address(&netif_unix, 1); #endif /* netif_set_default(netif_add(&ipaddr, &netmask, &gw, NULL, sioslipif_init1, tcpip_input)); */ tcpecho_init(); shell_init(); httpd_init(); udpecho_init(); printf("Applications started.\n"); sys_timeout(5000, tcp_timeout, NULL); sys_sem_signal(sem); }
/** * @brief Main task * @param pvParameters not used * @retval None */ static void StartThread(void const * argument) { /* Initialize LCD and LEDs */ BSP_Config(); /* Create tcp_ip stack thread */ tcpip_init(NULL, NULL); /* Initilaize the LwIP stack */ Netif_Config(); /* Initialize tcp echo server */ tcpecho_init(); /* Initialize udp echo server */ udpecho_init(); /* Notify user about the netwoek interface config */ User_notification(&gnetif); /* Start toogleLed4 task : Toggle LED4 every 250ms */ osThreadDef(LED4, ToggleLed4, osPriorityLow, 0, configMINIMAL_STACK_SIZE); osThreadCreate (osThread(LED4), NULL); for( ;; ) { /* Delete the Init Thread*/ osThreadTerminate(NULL); } }
/* This function initializes applications */ static void apps_init() { #if LWIP_DNS_APP && LWIP_DNS /* wait until the netif is up (for dhcp, autoip or ppp) */ sys_timeout(5000, dns_dorequest, NULL); #endif /* LWIP_DNS_APP && LWIP_DNS */ #if LWIP_CHARGEN_APP && LWIP_SOCKET chargen_init(); #endif /* LWIP_CHARGEN_APP && LWIP_SOCKET */ #if LWIP_PING_APP && LWIP_RAW && LWIP_ICMP ping_init(); #endif /* LWIP_PING_APP && LWIP_RAW && LWIP_ICMP */ #if LWIP_NETBIOS_APP && LWIP_UDP netbios_init(); #endif /* LWIP_NETBIOS_APP && LWIP_UDP */ #if LWIP_HTTPD_APP && LWIP_TCP #ifdef LWIP_HTTPD_APP_NETCONN http_server_netconn_init(); #else /* LWIP_HTTPD_APP_NETCONN */ httpd_init(); #endif /* LWIP_HTTPD_APP_NETCONN */ #endif /* LWIP_HTTPD_APP && LWIP_TCP */ #if LWIP_NETIO_APP && LWIP_TCP netio_init(); #endif /* LWIP_NETIO_APP && LWIP_TCP */ #if LWIP_RTP_APP && LWIP_SOCKET && LWIP_IGMP rtp_init(); #endif /* LWIP_RTP_APP && LWIP_SOCKET && LWIP_IGMP */ #if LWIP_SNTP_APP && LWIP_SOCKET sntp_init(); #endif /* LWIP_SNTP_APP && LWIP_SOCKET */ #if LWIP_SHELL_APP && LWIP_NETCONN shell_init(); #endif /* LWIP_SHELL_APP && LWIP_NETCONN */ #if LWIP_TCPECHO_APP #if LWIP_NETCONN && defined(LWIP_TCPECHO_APP_NETCONN) tcpecho_init(); #else /* LWIP_NETCONN && defined(LWIP_TCPECHO_APP_NETCONN) */ echo_init(); #endif #endif /* LWIP_TCPECHO_APP && LWIP_NETCONN */ #if LWIP_UDPECHO_APP && LWIP_NETCONN udpecho_init(); #endif /* LWIP_UDPECHO_APP && LWIP_NETCONN */ #if LWIP_SOCKET_EXAMPLES_APP && LWIP_SOCKET socket_examples_init(); #endif /* LWIP_SOCKET_EXAMPLES_APP && LWIP_SOCKET */ #ifdef LWIP_APP_INIT LWIP_APP_INIT(); #endif }
/** * @brief Main task * @param pvParameters not used * @retval None */ void Main_task(void * pvParameters) { #ifdef SERIAL_DEBUG DebugComPort_Init(); #endif /* configure ethernet (GPIOs, clocks, MAC, DMA) */ ETH_BSP_Config(); /* Initialize the LwIP stack */ LwIP_Init(); /* Initialize tcp echo server */ //tcpecho_init(); /* Initialize udp echo server */ udpecho_init(); #ifdef USE_DHCP /* Start DHCPClient */ xTaskCreate(LwIP_DHCP_task, (int8_t *)"DHCP", configMINIMAL_STACK_SIZE * 2, NULL,DHCP_TASK_PRIO, NULL); #endif #if 0 /* Start toogleLed4 task : Toggle LED4 every 250ms */ xTaskCreate(ToggleLed4, (int8_t *)"LED4", configMINIMAL_STACK_SIZE, NULL, LED_TASK_PRIO, NULL); #endif for( ;; ) { vTaskDelete(NULL); } }
static void init_netifs(void) { #if PPP_SUPPORT pppInit(); #if PPP_PTY_TEST ppp_sio = sio_open(2); #else ppp_sio = sio_open(0); #endif if(!ppp_sio) { perror("Error opening device: "); exit(1); } #ifdef LWIP_PPP_CHAP_TEST pppSetAuth(PPPAUTHTYPE_CHAP, "lwip", "mysecret"); #endif pppOpen(ppp_sio, pppLinkStatusCallback, NULL); #endif /* PPP_SUPPORT */ #if LWIP_DHCP { IP4_ADDR(&gw, 0,0,0,0); IP4_ADDR(&ipaddr, 0,0,0,0); IP4_ADDR(&netmask, 0,0,0,0); netif_add(&netif, &ipaddr, &netmask, &gw, NULL, tapif_init, tcpip_input); netif_set_default(&netif); dhcp_start(&netif); } #else netif_set_default(netif_add(&netif,&ipaddr, &netmask, &gw, NULL, tapif_init, tcpip_input)); netif_set_up(&netif); #endif #if 0 /* Only used for testing purposes: */ netif_add(&ipaddr, &netmask, &gw, NULL, pcapif_init, tcpip_input); #endif #if LWIP_TCP tcpecho_init(); shell_init(); httpd_init(); #endif #if LWIP_UDP udpecho_init(); #endif /* sys_timeout(5000, tcp_debug_timeout, NULL);*/ }
/** * @brief Main program. * @param None * @retval None */ int main(void) { /*!< At this stage the microcontroller clock setting is already configured to 168 MHz, this is done through SystemInit() function which is called from startup file (startup_stm32f4xx.s) before to branch to application main. To reconfigure the default setting of SystemInit() function, refer to system_stm32f4xx.c file */ //add a long delay wait for DP83848 finish reset unsigned int i,j; for(i=0;i<50;i++) { for(j=0;j < 65500;j++); } #ifdef SERIAL_DEBUG DebugComPort_Init(); #endif /*Initialize LCD and Leds */ LCD_LED_Init(); /* configure ethernet (GPIOs, clocks, MAC, DMA) */ ETH_BSP_Config(); /* Initilaize the LwIP stack */ LwIP_Init(); /* Initialize tcp echo server */ tcpecho_init(); /* Initialize udp echo server */ udpecho_init(); #ifdef USE_DHCP /* Start DHCPClient */ xTaskCreate(LwIP_DHCP_task, "DHCPClient", configMINIMAL_STACK_SIZE * 2, NULL,DHCP_TASK_PRIO, NULL); #endif /* Start toogleLed4 task : Toggle LED4 every 250ms */ xTaskCreate(ToggleLed4, "LED4", configMINIMAL_STACK_SIZE, NULL, LED_TASK_PRIO, NULL); /* Start scheduler */ vTaskStartScheduler(); /* We should never get here as control is now taken by the scheduler */ for( ;; ); }
/* StartDefaultTask function */ void StartDefaultTask(void const * argument) { /* init code for LWIP */ MX_LWIP_Init(); tcpecho_init(); udpecho_init(); /* USER CODE BEGIN 5 */ /* Infinite loop */ for(;;) { osDelay(1); } /* USER CODE END 5 */ }
int main(int argc,char *argv[]) { struct tapif tapif[NETIF_MAX]; struct netif netif[NETIF_MAX]; int ch; int n = 0; memset(tapif,0,sizeof(tapif)); memset(netif,0,sizeof(netif)); tcpip_init(NULL,NULL); #ifdef LWIP_DEBUG while ((ch = getopt(argc,argv,"CEHdhi:")) != -1) { #else while ((ch = getopt(argc,argv,"CEHhi:")) != -1) { #endif switch (ch) { case 'C': chargen_init(); break; case 'E': udpecho_init(); tcpecho_init(); break; case 'H': http_server_netconn_init(); break; #ifdef LWIP_DEBUG case 'd': debug_flags |= (LWIP_DBG_ON|LWIP_DBG_TRACE|LWIP_DBG_STATE| LWIP_DBG_FRESH|LWIP_DBG_HALT); break; #endif case 'i': if (n >= NETIF_MAX) break; if (parse_interface(&tapif[n],optarg) != 0) help(); netif_add(&netif[n], IP4_OR_NULL(tapif[n].ip_addr), IP4_OR_NULL(tapif[n].netmask), IP4_OR_NULL(tapif[n].gw), &tapif[n], tapif_init, tcpip_input); if (n == 0) netif_set_default(&netif[n]); netif_set_up(&netif[n]); if (IP4_OR_NULL(tapif[n].ip_addr) == 0 && IP4_OR_NULL(tapif[n].netmask) == 0 && IP4_OR_NULL(tapif[n].gw) == 0) dhcp_start(&netif[n]); n++; break; case 'h': default: help(); } } argc -= optind; argv += optind; if (n <= 0) help(); pause(); return -1; }
static void init_netifs(void) { #if LWIP_HAVE_SLIPIF #if SLIP_PTY_TEST u8_t siodev_slip = 3; #else u8_t siodev_slip = 0; #endif #if LWIP_IPV4 netif_add(&slipif, ip_2_ip4(&ipaddr_slip), ip_2_ip4(&netmask_slip), ip_2_ip4(&gw_slip), (void*)&siodev_slip, slipif_init, tcpip_input); #else /* LWIP_IPV4 */ netif_add(&slipif, (void*)&siodev_slip, slipif_init, tcpip_input); #endif /* LWIP_IPV4 */ #if LWIP_IPV6 netif_create_ip6_linklocal_address(&slipif, 1); #endif #if LWIP_NETIF_STATUS_CALLBACK netif_set_status_callback(&slipif, netif_status_callback); #endif /* LWIP_NETIF_STATUS_CALLBACK */ netif_set_link_up(&slipif); netif_set_up(&slipif); #endif /* LWIP_HAVE_SLIPIF */ #if PPP_SUPPORT #if PPP_PTY_TEST ppp_sio = sio_open(2); #else ppp_sio = sio_open(0); #endif if(!ppp_sio) { perror("Error opening device: "); exit(1); } ppp = pppos_create(&pppos_netif, ppp_output_cb, ppp_link_status_cb, NULL); if (!ppp) { printf("Could not create PPP control interface"); exit(1); } #ifdef LWIP_PPP_CHAP_TEST ppp_set_auth(ppp, PPPAUTHTYPE_CHAP, "lwip", "mysecret"); #endif ppp_connect(ppp, 0); #if LWIP_NETIF_STATUS_CALLBACK netif_set_status_callback(&pppos_netif, netif_status_callback); #endif /* LWIP_NETIF_STATUS_CALLBACK */ #endif /* PPP_SUPPORT */ #if LWIP_IPV4 #if LWIP_DHCP IP_ADDR4(&gw, 0,0,0,0); IP_ADDR4(&ipaddr, 0,0,0,0); IP_ADDR4(&netmask, 0,0,0,0); #endif /* LWIP_DHCP */ netif_add(&netif, ip_2_ip4(&ipaddr), ip_2_ip4(&netmask), ip_2_ip4(&gw), NULL, tapif_init, tcpip_input); #else /* LWIP_IPV4 */ netif_add(&netif, NULL, tapif_init, tcpip_input); #endif /* LWIP_IPV4 */ #if LWIP_IPV6 netif_create_ip6_linklocal_address(&netif, 1); #endif #if LWIP_NETIF_STATUS_CALLBACK netif_set_status_callback(&netif, netif_status_callback); #endif /* LWIP_NETIF_STATUS_CALLBACK */ netif_set_default(&netif); netif_set_up(&netif); #if LWIP_DHCP dhcp_start(&netif); #endif /* LWIP_DHCP */ #if 0 /* Only used for testing purposes: */ netif_add(&ipaddr, &netmask, &gw, NULL, pcapif_init, tcpip_input); #endif #if LWIP_TCP && LWIP_NETCONN tcpecho_init(); shell_init(); httpd_init(); #endif #if LWIP_UDP && LWIP_NETCONN udpecho_init(); #endif /* sys_timeout(5000, tcp_debug_timeout, NULL);*/ }
static void init_netifs(void) { #if PPP_SUPPORT sio_fd_t ppp_sio; ppp_pcb *ppp; #if PPP_PTY_TEST ppp_sio = sio_open(2); #else ppp_sio = sio_open(0); #endif if(!ppp_sio) { perror("Error opening device: "); exit(1); } ppp = pppos_create(&pppos_netif, ppp_sio, ppp_link_status_cb, NULL); if (!ppp) { printf("Could not create PPP control interface"); exit(1); } #ifdef LWIP_PPP_CHAP_TEST ppp_set_auth(ppp, PPPAUTHTYPE_CHAP, "lwip", "mysecret"); #endif ppp_connect(ppp, 0); #endif /* PPP_SUPPORT */ #if LWIP_DHCP IP4_ADDR(&gw, 0,0,0,0); IP4_ADDR(&ipaddr, 0,0,0,0); IP4_ADDR(&netmask, 0,0,0,0); #endif netif_set_default(netif_add(&netif,&ipaddr, &netmask, &gw, NULL, tapif_init, tcpip_input)); netif_set_up(&netif); #if LWIP_DHCP dhcp_start(&netif); #endif #if LWIP_IPV6 netif_create_ip6_linklocal_address(&netif, 1); #endif #if 0 /* Only used for testing purposes: */ netif_add(&ipaddr, &netmask, &gw, NULL, pcapif_init, tcpip_input); #endif #if LWIP_TCP tcpecho_init(); shell_init(); httpd_init(); #endif #if LWIP_UDP udpecho_init(); #endif /* sys_timeout(5000, tcp_debug_timeout, NULL);*/ }
/*-----------------------------------------------------------------------------------*/ static void main_thread(void *arg) { struct ip_addr ipaddr, netmask, gw; sys_sem_t sem; #if PPP_SUPPORT sio_fd_t ppp_sio; #endif netif_init(); sem = sys_sem_new(0); tcpip_init(tcpip_init_done, &sem); sys_sem_wait(sem); sys_sem_free(sem); printf("TCP/IP initialized.\n"); #if PPP_SUPPORT pppInit(); #if PPP_PTY_TEST ppp_sio = sio_open(2); #else ppp_sio = sio_open(0); #endif if(!ppp_sio) { perror("Error opening device: "); exit(1); } #ifdef LWIP_PPP_CHAP_TEST pppSetAuth(PPPAUTHTYPE_CHAP, "lwip", "mysecret"); #endif pppOpen(ppp_sio, pppLinkStatusCallback, NULL); #endif /* PPP_SUPPORT */ #if LWIP_DHCP { IP4_ADDR(&gw, 0,0,0,0); IP4_ADDR(&ipaddr, 0,0,0,0); IP4_ADDR(&netmask, 0,0,0,0); netif_add(&netif, &ipaddr, &netmask, &gw, NULL, tapif_init, tcpip_input); netif_set_default(&netif); dhcp_init(); dhcp_start(&netif); } #else IP4_ADDR(&gw, 192,168,0,1); IP4_ADDR(&ipaddr, 192,168,0,2); IP4_ADDR(&netmask, 255,255,255,0); netif_set_default(netif_add(&netif,&ipaddr, &netmask, &gw, NULL, tapif_init, tcpip_input)); netif_set_up(&netif); #endif /* Only used for testing purposes: */ /* IP4_ADDR(&gw, 193,10,66,1); IP4_ADDR(&ipaddr, 193,10,66,107); IP4_ADDR(&netmask, 255,255,252,0); netif_add(&ipaddr, &netmask, &gw, NULL, pcapif_init, tcpip_input);*/ #if LWIP_HAVE_LOOPIF IP4_ADDR(&gw, 127,0,0,1); IP4_ADDR(&ipaddr, 127,0,0,1); IP4_ADDR(&netmask, 255,0,0,0); netif_set_default(netif_add(&loopif, &ipaddr, &netmask, &gw, NULL, loopif_init, tcpip_input)); #endif #if LWIP_TCP tcpecho_init(); shell_init(); httpd_init(); #endif #if LWIP_UDP udpecho_init(); #endif #if LWIP_RAW sys_thread_new(ping_thread, NULL, DEFAULT_THREAD_PRIO); #endif printf("Applications started.\n"); /* sys_timeout(5000, tcp_timeout, NULL);*/ #ifdef MEM_PERF mem_perf_init("/tmp/memstats.client"); #endif /* MEM_PERF */ #if 0 stats_display(); #endif /* Block for ever. */ sem = sys_sem_new(0); sys_sem_wait(sem); }
/* This function initializes applications */ static void apps_init(void) { #if LWIP_DNS_APP && LWIP_DNS /* wait until the netif is up (for dhcp, autoip or ppp) */ sys_timeout(5000, dns_dorequest, NULL); #endif /* LWIP_DNS_APP && LWIP_DNS */ #if LWIP_CHARGEN_APP && LWIP_SOCKET chargen_init(); #endif /* LWIP_CHARGEN_APP && LWIP_SOCKET */ #if LWIP_PING_APP && LWIP_RAW && LWIP_ICMP ping_init(); #endif /* LWIP_PING_APP && LWIP_RAW && LWIP_ICMP */ #if LWIP_NETBIOS_APP && LWIP_UDP netbiosns_init(); #ifndef NETBIOS_LWIP_NAME #if LWIP_NETIF_HOSTNAME netbiosns_set_name(netif_default->hostname); #else netbiosns_set_name("NETBIOSLWIPDEV"); #endif #endif #endif /* LWIP_NETBIOS_APP && LWIP_UDP */ #if LWIP_HTTPD_APP && LWIP_TCP #ifdef LWIP_HTTPD_APP_NETCONN http_server_netconn_init(); #else /* LWIP_HTTPD_APP_NETCONN */ httpd_init(); #endif /* LWIP_HTTPD_APP_NETCONN */ #endif /* LWIP_HTTPD_APP && LWIP_TCP */ #if LWIP_MDNS_RESPONDER mdns_resp_init(); #if LWIP_NETIF_HOSTNAME mdns_resp_add_netif(netif_default, netif_default->hostname, 3600); #else mdns_resp_add_netif(netif_default, "lwip", 3600); #endif mdns_resp_add_service(netif_default, "lwipweb", "_http", DNSSD_PROTO_TCP, HTTPD_SERVER_PORT, 3600, srv_txt, NULL); #endif #if LWIP_NETIO_APP && LWIP_TCP netio_init(); #endif /* LWIP_NETIO_APP && LWIP_TCP */ #if LWIP_RTP_APP && LWIP_SOCKET && LWIP_IGMP rtp_init(); #endif /* LWIP_RTP_APP && LWIP_SOCKET && LWIP_IGMP */ #if LWIP_SNTP_APP && LWIP_SOCKET sntp_init(); #endif /* LWIP_SNTP_APP && LWIP_SOCKET */ #if LWIP_SHELL_APP && LWIP_NETCONN shell_init(); #endif /* LWIP_SHELL_APP && LWIP_NETCONN */ #if LWIP_TCPECHO_APP #if LWIP_NETCONN && defined(LWIP_TCPECHO_APP_NETCONN) tcpecho_init(); #else /* LWIP_NETCONN && defined(LWIP_TCPECHO_APP_NETCONN) */ tcpecho_raw_init(); #endif #endif /* LWIP_TCPECHO_APP && LWIP_NETCONN */ #if LWIP_UDPECHO_APP && LWIP_NETCONN udpecho_init(); #endif /* LWIP_UDPECHO_APP && LWIP_NETCONN */ #if LWIP_LWIPERF_APP lwiperf_start_tcp_server_default(lwiperf_report, NULL); #endif #if LWIP_SOCKET_EXAMPLES_APP && LWIP_SOCKET socket_examples_init(); #endif /* LWIP_SOCKET_EXAMPLES_APP && LWIP_SOCKET */ #ifdef LWIP_APP_INIT LWIP_APP_INIT(); #endif }
/*-----------------------------------------------------------------------------------*/ static void main_thread(void *arg) { struct ip_addr ipaddr, netmask, gw; sys_sem_t sem; netif_init(); sem = sys_sem_new(0); tcpip_init(tcpip_init_done, &sem); sys_sem_wait(sem); sys_sem_free(sem); printf("TCP/IP initialized.\n"); #if LWIP_DHCP { struct netif *netif; IP4_ADDR(&gw, 0,0,0,0); IP4_ADDR(&ipaddr, 0,0,0,0); IP4_ADDR(&netmask, 0,0,0,0); netif = netif_add(&ipaddr, &netmask, &gw, tapif_init, tcpip_input); netif_set_default(netif); dhcp_init(); dhcp_start(netif); } #else IP4_ADDR(&gw, 192,168,0,1); IP4_ADDR(&ipaddr, 192,168,0,2); IP4_ADDR(&netmask, 255,255,255,0); /* netif_set_default(netif_add(&ipaddr, &netmask, &gw, tapif_init, tcpip_input));*/ netif_set_default(netif_add(&ipaddr, &netmask, &gw, tapif_init, tcpip_input)); #endif /* Only used for testing purposes: */ /* IP4_ADDR(&gw, 193,10,66,1); IP4_ADDR(&ipaddr, 193,10,66,107); IP4_ADDR(&netmask, 255,255,252,0); netif_add(&ipaddr, &netmask, &gw, pcapif_init, tcpip_input);*/ IP4_ADDR(&gw, 127,0,0,1); IP4_ADDR(&ipaddr, 127,0,0,1); IP4_ADDR(&netmask, 255,0,0,0); netif_add(&ipaddr, &netmask, &gw, loopif_init, tcpip_input); tcpecho_init(); shell_init(); httpd_init(); udpecho_init(); printf("Applications started.\n"); /* sys_timeout(5000, tcp_timeout, NULL);*/ #ifdef MEM_PERF mem_perf_init("/tmp/memstats.client"); #endif /* MEM_PERF */ /* Block for ever. */ sem = sys_sem_new(0); sys_sem_wait(sem); }