亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lwiplib.c

?? lm3s下lwip的udp
?? C
?? 第 1 頁 / 共 2 頁
字號:
    netif_set_default(&lwip_netif);

    g_ulIPMode = ulIPMode;                          /* 指示正在運行者靜態IP模式*/

#if LWIP_DHCP                                                                                /* 如果使能了DHCP, 則運行它*/
    if(g_ulIPMode == IPADDR_USE_DHCP)
    {
        dhcp_start(&lwip_netif);
    }
#endif

#if LWIP_AUTOIP                                                                           /* 如果使能了AutoIP而禁能了DHCP,則運行AutoIP*/
    if(g_ulIPMode == IPADDR_USE_AUTOIP)
    {
        autoip_start(&lwip_netif);
    }
#endif

    netif_set_up(&lwip_netif);                /* 添加使能建立的網絡接口 */
}


/*********************************************************************************************************
** Function name:        lwIPTimer
** Descriptions:           TCP/IP協議棧——LwIP對周期性定時事件的處理 。本函數將通過參數ulTimeMS更新本地定時器。如果系統配置為
**                               沒有使用操作系統,這里將產生一個以太網軟中斷,以允許在以太網中斷服務程序里處理LwIP的周期性定時事件
** Input parameters:    ulTimeMS:周期性中斷的時間增量
** Output parameters:  None 無
** Returned value:       None 無        
** Created by:	   任海波
** Created Date:          2008.8.28
**--------------------------------------------------------------------------------------------------------
** Modified by:             
** Modified date:           
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void lwIPTimer(unsigned long ulTimeMS)
{
    g_ulLocalTimer += ulTimeMS;             /* 更新本地定時器 */

#if NO_SYS

/*********************************************************************************************************
**如果系統沒有使用RTOS,則編譯產生一個以太網中斷。這將會去執行檢查并處理周期性的定時事件。這是必須的,否則以太網將不會工作,
**這還允許將所有的lwip調用都放在以太網中斷服務程序里面,以確保所有的lwip調用都來自一個相同的上下文,以避免任何可重入性的事件。
**將所有的lwip調用都放在以太網的中斷服務程序里面,可以避免使用信號量來保護臨界區
*********************************************************************************************************/

    HWREG(NVIC_SW_TRIG) |= INT_ETH - 16;

#else

/*********************************************************************************************************
**如果系統運行在一個RTOS下,那么就應該發送一個信號量或者時間控制塊來喚醒主處理進程。是否采用這種方法必須明確地確定。如果
**該模塊在一個基于RTOS的系統下編譯,那么將會出現一個錯誤。
*********************************************************************************************************/

    #error "lwIPTimer does not yet support an RTOS!"
#endif
}


/*********************************************************************************************************
** Function name:        lwIPEthernetIntHandler
** Descriptions:           TCP/IP協議棧——LwIP的以太網中斷服務程序。該函數必須設置為一個最低的優先級,所有接收的數據包都被放入
**                               到數據包隊列中等待一個高平臺的任務處理。同時,它還將檢查發送數據包隊列,并根據需要通過以太網MAC發送
**                               數據。如果系統被配置為沒有使用RTOS,那么額外的處理將會在中斷中。數據包隊列是被TCP/IP源碼處理的,并
**                              且需要周期性的定時服務事件來處理。
** Input parameters:    ulTimeMS:周期性中斷的時間增量
** Output parameters:  None 無
** Returned value:       None 無        
** Created by:	   任海波
** Created Date:          2008.8.28
**--------------------------------------------------------------------------------------------------------
** Modified by:             
** Modified date:           
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void lwIPEthernetIntHandler(void)
{
    unsigned long ulStatus;

    ulStatus = EthernetIntStatus(ETH_BASE, false); /* 讀取并清除中斷狀態 */
    EthernetIntClear(ETH_BASE, ulStatus);


    if(ulStatus)                                  /* 如果發送的是一個TX/RX中斷,那么調用底層的中斷處理函數*/
    {
        stellarisif_interrupt(&lwip_netif);
    }

#if NO_SYS

/*********************************************************************************************************
**如果系統沒有使用一個RTOS,那么我們將所有的lwip處理都放在中斷服務程序里面。在接收隊列上服務任何的數據包
*********************************************************************************************************/

    stellarisif_input(&lwip_netif);

    lwIPServiceTimers();                      /* LWIP的定時器事件服務*/
#endif
}

/*********************************************************************************************************
** Function name:        lwIPLocalIPAddrGet
** Descriptions:           讀取并返回當前以太網接口的IP地址
** Input parameters:    None 無
** Output parameters:  None 無
** Returned value:       該以太網接口的IP地址        
** Created by:	   任海波
** Created Date:          2008.8.28
**--------------------------------------------------------------------------------------------------------
** Modified by:             
** Modified date:           
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
unsigned long lwIPLocalIPAddrGet(void)
{
    return((unsigned long)lwip_netif.ip_addr.addr);
}


/*********************************************************************************************************
** Function name:        lwIPLocalNetMaskGet
** Descriptions:           讀取并返回當前以太網接口的子網掩碼
** Input parameters:    None 無
** Output parameters:  None 無
** Returned value:       該以太網接口的子網掩碼       
** Created by:	   任海波
** Created Date:          2008.8.28
**--------------------------------------------------------------------------------------------------------
** Modified by:             
** Modified date:           
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
unsigned long lwIPLocalNetMaskGet(void)
{
    return((unsigned long)lwip_netif.netmask.addr);
}


/*********************************************************************************************************
** Function name:        lwIPLocalGWAddrGet
** Descriptions:           讀取并返回當前以太網接口的網關地址
** Input parameters:    None 無
** Output parameters:  None 無
** Returned value:       該以太網接口的網關地址      
** Created by:	   任海波
** Created Date:          2008.8.28
**--------------------------------------------------------------------------------------------------------
** Modified by:             
** Modified date:           
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
unsigned long lwIPLocalGWAddrGet(void)
{
    return((unsigned long)lwip_netif.gw.addr);
}


/*********************************************************************************************************
** Function name:        lwIPLocalMACGet
** Descriptions:           讀取并返回當前以太網接口的硬件MAC地址
** Input parameters:    None 無
** Output parameters:  pucMAC:該以太網接口的硬件MAC地址
** Returned value:       None 無  
** Created by:	   任海波
** Created Date:          2008.8.28
**--------------------------------------------------------------------------------------------------------
** Modified by:             
** Modified date:           
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void lwIPLocalMACGet(unsigned char *pucMAC)
{
    EthernetMACAddrGet(ETH_BASE, pucMAC);
}


/*********************************************************************************************************
** Function name:        lwIPNetworkConfigChange
** Descriptions:           改變LwIP網絡接口的配置。該函數將評估一個新的配置信息。如果允許的話,網絡接口將被重新配置,從此以后
**                               網絡使用新的網絡配置。
** Input parameters:    ulIPAddr:新配置的IP地址                            
**                               ulNetMask:新配置的子網掩碼
**                               ulGWAddr:新配置的網關地址
**                               ulIPMode:新配置IP地址的獲取方式
** Output parameters:  None 無
** Returned value:       None 無        
** Created by:	   任海波
** Created Date:          2008.8.28
**--------------------------------------------------------------------------------------------------------
** Modified by:             
** Modified date:           
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void lwIPNetworkConfigChange(struct ip_addr ip_addr, struct ip_addr net_mask,
                             struct ip_addr gw_addr, unsigned long ulIPMode)
{
    struct ip_addr IPAddr;
    struct ip_addr NetMask;
    struct ip_addr GwAddr;

#if LWIP_DHCP && LWIP_AUTOIP                                          /* 檢驗參數的設置 */
    ASSERT((ulIPMode == IPADDR_USE_STATIC) ||
           (ulIPMode == IPADDR_USE_DHCP) ||
           (ulIPMode == IPADDR_USE_AUTOIP))
#elif LWIP_DHCP
    ASSERT((ulIPMode == IPADDR_USE_STATIC) ||
           (ulIPMode == IPADDR_USE_DHCP))
#elif LWIP_AUTOIP
    ASSERT((ulIPMode == IPADDR_USE_STATIC) ||
           (ulIPMode == IPADDR_USE_AUTOIP))
#else
    ASSERT(ulIPMode == IPADDR_USE_STATIC)
#endif

    if(ulIPMode == IPADDR_USE_STATIC)             /* 設置網絡IP地址等*/
    {
        IPAddr  = ip_addr;
        NetMask = net_mask;
        GwAddr  = gw_addr;
    }
#if LWIP_DHCP || LWIP_AUTOIP
    else
    {
        ip_addr.addr = 0;
        net_mask.addr = 0;
        gw_addr.addr = 0;
    }
#endif


    switch(g_ulIPMode)                           /* 切換當前IP地址的獲取方式 */
    {
        case IPADDR_USE_STATIC:                  /* 使用靜態IP模式*/
        {
            netif_set_addr(&lwip_netif, &IPAddr, &NetMask, &GwAddr);

#if LWIP_DHCP
            if(ulIPMode == IPADDR_USE_DHCP)
            {
                dhcp_start(&lwip_netif);
            }
#endif

#if LWIP_AUTOIP
            if(ulIPMode == IPADDR_USE_AUTOIP)
            {
                autoip_start(&lwip_netif);
            }
#endif

            g_ulIPMode = ulIPMode;
            break;
	    
        }


#if LWIP_DHCP
        case IPADDR_USE_DHCP:
        {
            if(ulIPMode == IPADDR_USE_STATIC)
            {
                dhcp_stop(&lwip_netif);
                netif_set_addr(&lwip_netif, &IPAddr, &NetMask, &GwAddr);
            }

#if LWIP_AUTOIP
            else if(ulIPMode == IPADDR_USE_AUTOIP)
            {
                dhcp_stop(&lwip_netif);
                netif_set_addr(&lwip_netif, &IPAddr, &NetMask, &GwAddr);
                autoip_start(&lwip_netif);
            }
#endif
            break;
        }
#endif

#if LWIP_AUTOIP
        case IPADDR_USE_AUTOIP:
        {
            if(ulIPMode == IPADDR_USE_STATIC)
            {
                autoip_stop(&lwip_netif);
                netif_set_addr(&lwip_netif, &IPAddr, &NetMask, &GwAddr);
            }

#if LWIP_DHCP
            else if(ulIPMode == IPADDR_USE_AUTOIP)
            {
                autoip_stop(&lwip_netif);
                netif_set_addr(&lwip_netif, &IPAddr, &NetMask, &GwAddr);
                dhcp_start(&lwip_netif);
            }
#endif
            break;
        }
#endif
    }
}

/**********************************************************************
**函數原型:	void InitNic()
**入口參數:	無
**出口參數:	無
**返 回 值:	無              
**說    明:	對芯片的工作寄存器進行設置,各個寄存器的用法可參考LM3S8962的數據手冊
************************************************************************/
void InitNic(void)
{
    struct ip_addr xIpAddr, xNetMask, xGateway;
    
    SysCtlPeripheralEnable(SYSCTL_PERIPH_ETH);    /* 復位并使能以太網控制器*/
    SysCtlPeripheralReset(SYSCTL_PERIPH_ETH);
    
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);  /* 使能以太網控制器的指示燈*/
    GPIODirModeSet(GPIO_PORTF_BASE, GPIO_PIN_2 | GPIO_PIN_3, GPIO_DIR_MODE_HW);
    GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_2 | GPIO_PIN_3,
                     GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD);
    
     IntMasterEnable();                          /* 使能總的中斷*/
     
     IP4_ADDR(&xIpAddr,IPAddress[0],IPAddress[1],IPAddress[2],IPAddress[3]);
     IP4_ADDR(&xNetMask,NetMaskAddr[0],NetMaskAddr[1],NetMaskAddr[2],NetMaskAddr[3]);
     IP4_ADDR(&xGateway,GwWayAddr[0],GwWayAddr[1],GwWayAddr[2],GwWayAddr[3]);
     
     lwIPInit(MACAddress,xIpAddr, xNetMask, xGateway,IPADDR_USE_STATIC); /* 初始化協議棧*/
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91福利国产成人精品照片| 国产精品美女一区二区| 国产亚洲精品bt天堂精选| 亚洲免费大片在线观看| 久久精品99国产精品| 在线视频综合导航| 国产性做久久久久久| 日韩国产高清在线| 99re热这里只有精品免费视频| 欧美一区二区久久| 亚洲欧美日韩国产一区二区三区 | 亚洲综合视频在线| 国产精品一区一区三区| 欧美一区二区免费| 亚洲自拍偷拍麻豆| 99这里都是精品| 久久久久久久久久久久电影| 视频一区欧美精品| 91精品福利视频| 成人免费在线视频观看| www.日韩大片| 亚洲欧美偷拍三级| 91蜜桃在线免费视频| 亚洲视频1区2区| 91在线国内视频| 国产精品第四页| www.视频一区| 亚洲伦在线观看| 色视频一区二区| 一区二区日韩电影| www.久久精品| 一区二区日韩av| 欧美专区在线观看一区| 亚洲综合网站在线观看| 欧美日韩视频在线第一区| 一区二区欧美视频| 在线观看网站黄不卡| 亚洲蜜桃精久久久久久久| 蜜臂av日日欢夜夜爽一区| 欧美性色综合网| 亚洲人一二三区| 成人国产精品免费观看动漫 | 欧美性色黄大片手机版| 亚洲三级电影网站| 成人手机在线视频| 欧美日韩国产中文| 又紧又大又爽精品一区二区| 国产激情偷乱视频一区二区三区 | 91麻豆精品国产综合久久久久久| 亚洲丝袜美腿综合| 99国产精品国产精品久久| 中文在线资源观看网站视频免费不卡| 国产在线精品视频| 91精品国产一区二区三区 | 韩国v欧美v日本v亚洲v| 日韩欧美一区电影| 精品一区二区久久| 国产欧美一区二区精品忘忧草| 国产在线国偷精品免费看| 国产三级一区二区| 91在线porny国产在线看| 一区二区三区在线观看欧美| 欧美日韩专区在线| 视频一区二区中文字幕| 精品国产百合女同互慰| 成人免费观看av| 亚洲精品一卡二卡| 欧美精品欧美精品系列| 午夜久久久影院| 91视频91自| 日韩综合一区二区| 久久久久久久一区| 91啪亚洲精品| 日本不卡视频一二三区| 精品动漫一区二区三区在线观看| 国产精品系列在线观看| 亚洲精品国产一区二区精华液 | 亚洲五码中文字幕| 久久综合久久综合亚洲| 99视频精品在线| 日本欧洲一区二区| 久久精品视频免费| 色综合天天综合在线视频| 五月天亚洲婷婷| 精品国产免费人成电影在线观看四季 | 日韩午夜在线观看| 成人午夜视频网站| 日韩av一级电影| 国产精品欧美一区喷水| 欧美精品粉嫩高潮一区二区| 久久99久久久久久久久久久| 亚洲同性gay激情无套| 日韩欧美精品在线| 91丨porny丨户外露出| 日本伊人色综合网| 亚洲视频一二区| 日韩美女视频在线| 91在线精品一区二区三区| 经典一区二区三区| 亚洲国产日韩一级| 最新不卡av在线| 欧美日韩成人综合在线一区二区| 成人激情视频网站| 老司机精品视频线观看86| 亚洲精品成a人| 国产午夜精品久久久久久久| 8v天堂国产在线一区二区| 91在线观看地址| 成人免费av网站| 国内成人精品2018免费看| 亚洲成av人影院| 一区二区三区视频在线观看| 久久久精品tv| 日韩女同互慰一区二区| 777奇米成人网| 色老综合老女人久久久| 国产91精品久久久久久久网曝门| 日韩成人一级大片| 亚洲一卡二卡三卡四卡五卡| ...xxx性欧美| 国产精品女主播在线观看| 久久久www免费人成精品| 欧美一区在线视频| 欧美日韩一区二区欧美激情| 欧美亚洲国产一区二区三区va| 成人激情文学综合网| 成+人+亚洲+综合天堂| 国产高清不卡二三区| 国产伦精一区二区三区| 久久99精品久久久久久| 老色鬼精品视频在线观看播放| 日韩激情视频在线观看| 丝袜亚洲另类欧美| 免费国产亚洲视频| 亚洲制服丝袜av| 樱桃国产成人精品视频| 一区二区三区**美女毛片| 一区二区三区色| 亚洲成人资源在线| 日本中文字幕不卡| 国产资源精品在线观看| 国产九色精品成人porny| 国产成人在线电影| 成人精品一区二区三区四区| 国产美女在线精品| 色综合久久综合网97色综合| 欧美色偷偷大香| 日韩欧美高清dvd碟片| 久久夜色精品国产噜噜av| 久久亚洲精华国产精华液| 日本一区二区三区dvd视频在线| 久久久久综合网| 亚洲免费av网站| 日韩电影在线一区| 五月激情六月综合| 国产又粗又猛又爽又黄91精品| 成人国产精品免费观看视频| 在线观看不卡视频| 欧美videofree性高清杂交| 国产视频不卡一区| 亚洲成a人v欧美综合天堂下载| 美女国产一区二区| 成人综合婷婷国产精品久久免费| 91在线视频观看| 一本大道久久a久久综合| 欧美一区日韩一区| 中文字幕国产精品一区二区| 亚洲一区二区三区四区五区黄 | 欧美激情一区二区三区四区| 亚洲精品伦理在线| 亚洲欧美日韩国产另类专区| 日欧美一区二区| 波多野结衣精品在线| 欧美精品欧美精品系列| 中文字幕国产精品一区二区| 欧美经典一区二区| 国产无一区二区| 久久国产精品免费| 91免费观看国产| 国产亚洲一区二区三区四区| 一区二区三区日韩精品视频| 国产一区二区免费视频| 欧美日本视频在线| 亚洲婷婷在线视频| 精品无人区卡一卡二卡三乱码免费卡 | 欧美高清hd18日本| 中文字幕乱码日本亚洲一区二区 | 久久久久综合网| 视频在线观看一区二区三区| 丰满少妇在线播放bd日韩电影| 欧美丰满少妇xxxxx高潮对白 | 亚洲精品中文在线影院| 国产精品一区二区在线观看不卡| 94-欧美-setu| 久久影视一区二区| 激情欧美一区二区三区在线观看| 69堂国产成人免费视频| 一区二区三区精品| av在线不卡电影| 精品久久久久一区|