在线时间32 小时
UID3094955
注册时间2015-2-9
NXP金币0
该用户从未签到
中级会员
 
- 积分
- 298
- 最后登录
- 2015-7-21
|

楼主 |
发表于 2015-3-31 18:38:49
|
显示全部楼层
下面程序是LWIP_RAW_DHCP_Client的程序:
- #include "lwip/opt.h"
- #if LWIP_TCP
- // Standard C Included Files
- #include <stdio.h>
- // lwip Included Files
- #include "lwip/debug.h"
- #include "lwip/stats.h"
- #include "lwip/tcp.h"
- #include "lwip/dhcp.h"
- #include "lwip/mem.h"
- #include "lwip/raw.h"
- #include "lwip/icmp.h"
- #include "lwip/netif.h"
- #include "lwip/sys.h"
- #include "lwip/timers.h"
- #include "lwip/inet_chksum.h"
- #include "lwip/init.h"
- #include "netif/etharp.h"
- // SDK Included Files
- #include "fsl_clock_manager.h"
- #include "fsl_os_abstraction.h"
- #include "ethernetif.h"
- #include "board.h"
- const static char test_data[]= "sending test";
- struct tcp_pcb *Clipcb;
- struct ip_addr ipaddr;
- struct netif fsl_netif0;
- ip_addr_t fsl_netif0_ipaddr, fsl_netif0_netmask, fsl_netif0_gw;
- #endif // LWIP_TCP
- static void app_low_level_init(void)
- {
- // Open uart module for debug
- hardware_init();
- // Open ENET clock gate
- CLOCK_SYS_EnableEnetClock(0);
- // Select PTP timer outclk
- CLOCK_SYS_SetEnetTimeStampSrc(0, kClockTimeSrcOsc0erClk);
- // Disable the mpu
- MPU_BWR_CESR_VLD(MPU, 0);
- }
- err_t TcpCli_Connected(void *arg,struct tcp_pcb *pcb,err_t err)
- {
- tcp_write(Clipcb,test_data,sizeof(test_data),0);
- tcp_close(Clipcb);
- return ERR_OK;
- }
- void TCP_CLIENT_init()
- {
- IP4_ADDR(&ipaddr, 10,193,21,100);
- Clipcb = tcp_new();
- tcp_bind(Clipcb, IP_ADDR_ANY,80);
- tcp_connect(Clipcb,&ipaddr,80,TcpCli_Connected);
- }
- int main(void)
- {
- int c,d;
- char rlt;
- rlt = 9;
- app_low_level_init();
- OSA_Init();
- lwip_init();
- #if LWIP_DHCP
- fsl_netif0_ipaddr.addr=0;
- fsl_netif0_netmask.addr=0;
- fsl_netif0_gw.addr=0;
-
- netif_add(&fsl_netif0, &fsl_netif0_ipaddr, &fsl_netif0_netmask, &fsl_netif0_gw, NULL, ethernetif_init, ethernet_input);
- rlt = dhcp_start(&fsl_netif0);
- dhcp_fine_tmr();
- while(fsl_netif0.dhcp==NULL||fsl_netif0.dhcp->offered_ip_addr.addr==0
- ||fsl_netif0.dhcp->offered_sn_mask.addr==0
- ||fsl_netif0.dhcp->offered_gw_addr.addr==0)
- {
- }
- netif_set_addr(&fsl_netif0, &(fsl_netif0.dhcp->offered_ip_addr),
- &(fsl_netif0.dhcp->offered_sn_mask),
- &(fsl_netif0.dhcp->offered_gw_addr));
- #else
- IP4_ADDR(&fsl_netif0_ipaddr, 192,168,2,102);
- IP4_ADDR(&fsl_netif0_netmask, 255,255,255,0);
- IP4_ADDR(&fsl_netif0_gw, 192,168,2,100);
- netif_add(&fsl_netif0, &fsl_netif0_ipaddr, &fsl_netif0_netmask, &fsl_netif0_gw, NULL, ethernetif_init, ethernet_input);
- #endif
- netif_set_default(&fsl_netif0);
- netif_set_up(&fsl_netif0);
- ip_init();
- PRINTF(".");PRINTF(".");PRINTF(".");PRINTF("%d",rlt);PRINTF(".");PRINTF(".");PRINTF(".");
- #if !ENET_RECEIVE_ALL_INTERRUPT
- uint32_t devNumber = 0;
- enet_dev_if_t * enetIfPtr;
- #if LWIP_HAVE_LOOPIF
- devNumber = fsl_netif0.num - 1;
- #else
- devNumber = fsl_netif0.num;
- #endif
- enetIfPtr = (enet_dev_if_t *)&enetDevIf[devNumber];
- #endif
- while(1)
- {
-
- #if !ENET_RECEIVE_ALL_INTERRUPT
- ENET_receive(enetIfPtr);
- #endif
- TCP_CLIENT_init();
-
- for(c=0;c<10000;c++)
- {
- for(d=0;d<10000;d++);
- }
- }
- }
复制代码 |
|