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

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

?? ppp.c

?? arm7 lpc2131 ucos 的實驗
?? C
?? 第 1 頁 / 共 4 頁
字號:
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 2004年4月23日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        void PPPIllegalEvent(uint8 *DataBuf, uint8 Q)
{
    DataBuf = DataBuf;
    Q = Q;
}

/*********************************************************************************************************
** 函數名稱: PPP_UpLayer()
** 功能描述: This-Layer-Up
**          動作給自動進入打開階段的上邊的層做指示。
**          典型的,該動作被LCP用于對一個NCP發送向上的事件信號,或者鏈路質量協議,或者可以被一個NCP用于顯示該鏈路可用于它的網絡層往來。 
**          或者可以被一個NCP用于顯示該鏈路可用于它的網絡層往來。 
** 輸 入: DataBuf :接收到的數據包
**         Q       :接收到的消息(本函數沒有用到)
** 輸 出: 無
** 全局變量: 無
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 2004年4月23日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        void PPP_UpLayer(uint8 *DataBuf, uint8 Q)
{
    NCPGetFrame(&PPPData, DataBuf, Q);
}

/*********************************************************************************************************
** 函數名稱: PPPDriverInit()
** 功能描述: PPP驅動接收初始化
** 輸 入: 無
** 輸 出: 無
** 全局變量: PPPData
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 2004年4月23日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 PPPDriverInit(void)
{
    PPPData.HardDrive = NULL;
    PPPData.Event = OSQCreate(PPPData.QBuf, PPP_DRIVER_Q_BUF_LEN);
    if (PPPData.Event == NULL)
    {
        return FALSE;
    }
    else
    {
        return TRUE;
    }
}

uint8 PPPLowLayerUpQ[1];
uint8 PPPLowLayerDownQ[1];
uint8 PPPOpenQ[1];
uint8 PPPCloseQ[1];

        uint8 PPPLowLayerUp(void)
{

#if OS_TASK_CREATE_EN > 0
    #if OS_STK_GROWTH > 0    
        OSTaskCreate(PPPReviceTask, NULL, Stk[1] + PPP_DRIVER_TASK_STK_SIZE - 1,
                 PPP_DRIVER_TASK_PRIO + 1);
    #else
        OSTaskCreate(PPPReviceTask, NULL, Stk[1], PPP_DRIVER_TASK_PRIO + 1);
    #endif
#else
    #if OS_STK_GROWTH > 0    
        OSTaskCreateExt(PPPReviceTask, NULL, Stk[1] + PPP_DRIVER_TASK_STK_SIZE - 1,
                 PPP_DRIVER_TASK_PRIO + 1, PPP_DRIVER_TASK_PRIO + 1, Stk[1],
                 PPP_DRIVER_TASK_STK_SIZE, NULL, 0);

    #else
        OSTaskCreateExt(PPPReviceTask, NULL, Stk[1], PPP_DRIVER_TASK_PRIO + 1,
                 PPP_DRIVER_TASK_PRIO + 1, Stk[1] + PPP_DRIVER_TASK_STK_SIZE - 1,
                 PPP_DRIVER_TASK_STK_SIZE, NULL, 0);
    #endif
#endif
    
    PPPLowLayerUpQ[0] = PPP_EVENT_LOWER_UP;
    OSQPost(PPPData.Event, (void *)PPPLowLayerUpQ);

    return 0;
}

        uint8 PPPLowLayerDown(void)
{
    PPPLowLayerDownQ[0] = PPP_EVENT_LOWER_DOWN;
    OSQPost(PPPData.Event, (void *)PPPLowLayerDownQ);

    OSTaskDel(PPP_DRIVER_TASK_PRIO + 1);
    return 0;
}

        uint8 PPPOpen(void)
{
    PPPOpenQ[0] = PPP_EVENT_OPEN;
    OSQPost(PPPData.Event, (void *)PPPOpenQ);
    return 0;
}

        uint8 PPPClose(void)
{
    PPPCloseQ[0] = PPP_EVENT_CLOSE;
    OSQPost(PPPData.Event, (void *)PPPCloseQ);

    return 0;
}


        uint8 PPPCreate(NetHardDrivesSocket *HardDrive)
{
    if (PPPData.HardDrive == NULL && HardDrive != NULL)
    {
        PPPData.HardDrive = HardDrive;
        HardDrive->ThisLayerUp = PPPLowLayerUp;
        HardDrive->ThisLayerDown = PPPLowLayerDown;
        
        PPPData.MaxTerminate = 3 * OS_TICKS_PER_SEC;
        PPPData.MaxConfigure = 2 * OS_TICKS_PER_SEC;
        PPPData.MaxFailure = 10;
        PPPData.DelayTime = 0;
        PPPData.OverTimeSum = 0;
        PPPData.State = PPP_STATE_INITIAL;
        PPPData.FramID = 0;

#if OS_TASK_CREATE_EN > 0
    #if OS_STK_GROWTH > 0    
        OSTaskCreate(PPPDriverTask, NULL, Stk[0] + PPP_DRIVER_TASK_STK_SIZE - 1,
                 PPP_DRIVER_TASK_PRIO);
    #else
        OSTaskCreate(PPPDriverTask, NULL, Stk[0], PPP_DRIVER_TASK_PRIO);
    #endif
#else
    #if OS_STK_GROWTH > 0    
        OSTaskCreateExt(PPPDriverTask, NULL, Stk[0] + PPP_DRIVER_TASK_STK_SIZE - 1,
                 PPP_DRIVER_TASK_PRIO, PPP_DRIVER_TASK_PRIO, Stk[0],
                 PPP_DRIVER_TASK_STK_SIZE, NULL, 0);
    #else
        OSTaskCreateExt(PPPDriverTask, NULL, Stk[0], PPP_DRIVER_TASK_PRIO,
                 PPP_DRIVER_TASK_PRIO, Stk[0] + PPP_DRIVER_TASK_STK_SIZE - 1,
                 PPP_DRIVER_TASK_STK_SIZE, NULL, 0);
    #endif
#endif
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}

/*********************************************************************************************************
** 函數名稱: PPPDriveWrite()
** 功能描述: 使用PPP協議發送一個數據包,調用此函數前必須調用PPPDriveGetSendBuf獲取數據緩沖
** 輸 入: HardDrive :發送的硬件驅動
**         Buf  :指向發送的數據
**         NByte:發送的字節數
** 輸 出: TRUE :函數調用成功
**         FALSE:函數調用失敗
** 全局變量: PPPUseHardDrive,PPPFcs16
** 調用模塊:
**
** 作 者: 陳明計
** 日 期: 2004年4月23日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

        uint8 PPPDriveWrite(NetHardDrivesSocket *HardDrive, uint8 *Buf, uint16 Nbyte)
{
    
    uint16 Fcs;
    uint8 Temp;
    
    if (HardDrive != NULL)
    if (HardDrive->GetFlag != NULL)
    if (HardDrive->GetFlag() == NET_HARD_OPEN)
    if (HardDrive->Putch != NULL)
    {
        Fcs = PPPFcs16(PPP_HARD_FCS16, Buf, Nbyte);
        Fcs = ~Fcs;
                
/* 取得信號量 */
                
        HardDrive->Putch(PPP_HARD_CHAR);
        HardDrive->Putch(PPP_ADDR_CHAR);
        HardDrive->Putch(PPP_DLE_CHAR);
        HardDrive->Putch(PPP_CTR_CHAR ^ PPP_DLE_XOR_CHAR);
        while (Nbyte--)
        {
            Temp = *Buf;
       
            if ((Temp == PPP_HARD_CHAR) || (Temp == PPP_DLE_CHAR) || (Temp < 0x20))
            {
                HardDrive->Putch(PPP_DLE_CHAR);
                HardDrive->Putch(Temp ^ PPP_DLE_XOR_CHAR);
            }
            else
            {
                HardDrive->Putch(*Buf);
            }
            Buf++;
        }

        Temp = Fcs % 256;
        if ((Temp == PPP_HARD_CHAR) || (Temp == PPP_DLE_CHAR) || (Temp < 0x20))
        {
            HardDrive->Putch(PPP_DLE_CHAR);
            HardDrive->Putch(Temp ^ PPP_DLE_XOR_CHAR);
        }
        else
        {
            HardDrive->Putch(Temp);
        }


        Temp = Fcs / 256;
        if ((Temp == PPP_HARD_CHAR) || (Temp == PPP_DLE_CHAR) || (Temp < 0x20))
        {
            HardDrive->Putch(PPP_DLE_CHAR);
            HardDrive->Putch(Temp ^ PPP_DLE_XOR_CHAR);
        }
        else
        {
            HardDrive->Putch(Temp);
        }
                
                
        HardDrive->Putch(PPP_HARD_CHAR);

/* 發送信號量 */
        return TRUE;
    }
    return FALSE;
}

/*********************************************************************************************************
** 函數名稱: PPPGetch()
** 功能描述: 接收一個字節
** 輸 入: 無
** 輸 出: 接收到的數據
** 全局變量: PPPUseHardDrive
** 調用模塊: OSTaskSuspend
**
** 作 者: 陳明計
** 日 期: 2004年4月23日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 PPPGetch(NetHardDrivesSocket *HardDrive)
{
    uint8 Temp,err;
    
    while (1)
    {
        err = HardDrive->Getch(&Temp);
        if (err == NO_ERR)
        {
            break;
        }
    }
    return Temp;
}



/*********************************************************************************************************
** 函數名稱: PPPDriverGetFrame()
** 功能描述: PPP驅動接收到數據幀處理
** 輸 入: Fram :數據幀的起始地址
**         NByte:數據幀大小
** 輸 出: 無
** 全局變量: FramType
** 調用模塊: PPPFcs16,IPReviceFram,ICPCReviceFram,PAPReviceFram,LCPReviceFram
**
** 作 者: 陳明計
** 日 期: 2004年4月23日
**-------------------------------------------------------------------------------------------------------
** 修改人:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人综合网站| 久久蜜桃av一区二区天堂| 亚洲欧洲国产日本综合| 成人av综合一区| 国产精品久久久久久久裸模| 成人av影院在线| 亚洲欧美日韩系列| 欧美日韩视频第一区| 日本成人中文字幕| 精品国产一区二区三区四区四| 狠狠色狠狠色合久久伊人| 久久综合中文字幕| 97久久精品人人爽人人爽蜜臀| 亚洲黄色av一区| 欧美高清你懂得| 精品一区二区三区的国产在线播放| 精品国产一区二区三区久久影院 | 欧美专区日韩专区| 亚洲大片免费看| 日韩精品一区二| 国产成人免费在线观看不卡| 亚洲人成小说网站色在线| 欧美性一级生活| 久久99国产精品尤物| 国产精品久久久久影院老司 | 精品视频在线看| 日本vs亚洲vs韩国一区三区二区| 久久先锋资源网| 一本高清dvd不卡在线观看| 日韩主播视频在线| 欧美国产视频在线| 欧美日韩国产经典色站一区二区三区 | 国产成人一级电影| 亚洲国产综合在线| 国产免费久久精品| 欧美精品色一区二区三区| 国产精品69久久久久水密桃| 一区二区三区四区在线播放 | 中文字幕免费不卡| 欧美日韩精品欧美日韩精品一综合| 激情小说亚洲一区| 亚洲制服丝袜av| 国产女同性恋一区二区| 欧美日韩国产天堂| 不卡av电影在线播放| 日韩1区2区3区| 亚洲男人的天堂在线观看| 精品免费日韩av| 色婷婷av一区二区三区大白胸| 激情综合色综合久久综合| 依依成人综合视频| 国产网站一区二区三区| 欧美电影免费观看高清完整版在线观看 | 亚洲欧美在线视频| 精品88久久久久88久久久| 欧美日韩在线一区二区| 成人av网址在线| 精品一区二区在线观看| 亚洲成人1区2区| 亚洲色欲色欲www| 国产天堂亚洲国产碰碰| 欧美成人vr18sexvr| 欧美日韩国产综合一区二区三区| www.成人网.com| 国产一区二区免费看| 日本不卡免费在线视频| 亚洲午夜免费电影| 亚洲欧美一区二区三区极速播放 | 中文字幕中文在线不卡住| 精品日韩欧美一区二区| 欧美久久高跟鞋激| 欧美性大战xxxxx久久久| 色综合网站在线| a美女胸又www黄视频久久| 国产不卡免费视频| 国产一区不卡在线| 国产一区二区精品在线观看| 激情久久五月天| 经典三级视频一区| 国产一区二区看久久| 国产精品一区二区三区四区| 国产精品综合网| 国产高清亚洲一区| 成人avav影音| 色播五月激情综合网| 欧美影院一区二区| 欧美久久婷婷综合色| 欧美军同video69gay| 91精品国产综合久久精品麻豆| 91精品国产综合久久久蜜臀粉嫩| 日韩欧美一区在线| 久久蜜桃av一区精品变态类天堂 | 亚洲色图欧洲色图婷婷| 亚洲欧美经典视频| 亚洲高清免费在线| 日韩高清不卡一区二区三区| 精品一区二区三区免费观看| 粉嫩绯色av一区二区在线观看 | 色综合天天综合狠狠| 色欧美日韩亚洲| 91国产丝袜在线播放| 91麻豆精品国产91久久久资源速度| 88在线观看91蜜桃国自产| 日韩一区二区中文字幕| 日韩一级精品视频在线观看| 国产午夜精品一区二区| 国产欧美日本一区二区三区| 一区二区三区.www| 亚洲福利一区二区三区| 老司机精品视频导航| 欧美韩国日本综合| 亚洲影视资源网| 麻豆国产精品视频| 国产精品888| 欧美日韩在线播放三区| 欧美一卡二卡三卡| 欧美国产视频在线| 一区二区三区中文字幕电影| 国产精品伦一区二区三级视频| 国产精品久久久99| 亚洲午夜免费电影| 韩国精品在线观看| 99免费精品视频| 在线不卡免费欧美| 中文字幕一区不卡| 爽好久久久欧美精品| 成人av网站在线观看| 99视频在线精品| 日韩欧美一级精品久久| 亚洲色图制服诱惑| 久久精品国产第一区二区三区| av在线不卡网| 欧美一区二区日韩一区二区| 中文字幕一区免费在线观看| 亚洲大片在线观看| 99久久精品一区二区| 6080午夜不卡| 亚洲男人的天堂在线aⅴ视频 | 亚洲.国产.中文慕字在线| 久久99热国产| 欧美日韩日日夜夜| 亚洲国产精华液网站w| 精品在线一区二区| 91美女视频网站| 国产拍揄自揄精品视频麻豆| 伊人开心综合网| 成人性生交大片免费看中文| 91蝌蚪porny九色| 欧美r级电影在线观看| 五月综合激情网| 不卡欧美aaaaa| 亚洲国产精品激情在线观看| 日韩电影在线观看网站| 欧美三级欧美一级| 综合久久久久综合| 成人一级黄色片| 久久女同精品一区二区| 日韩精品乱码免费| 欧美影视一区在线| 中文字幕五月欧美| 成人午夜伦理影院| 精品sm在线观看| 国产在线一区观看| 日韩午夜在线影院| 另类调教123区| 欧美三级蜜桃2在线观看| 中文字幕一区二区三区在线播放 | 国产偷v国产偷v亚洲高清| 天天影视网天天综合色在线播放 | 26uuu久久综合| 美女精品自拍一二三四| 欧美日韩在线三区| 日韩精品电影一区亚洲| 在线亚洲欧美专区二区| 洋洋成人永久网站入口| 91理论电影在线观看| 亚洲香肠在线观看| 国产成人a级片| www日韩大片| 成人性生交大片免费看在线播放| 精品免费日韩av| 国产米奇在线777精品观看| 欧美精品一区二区三区四区 | 久久精品人人爽人人爽| 国产成a人无v码亚洲福利| 久久久精品国产免大香伊| 成人激情动漫在线观看| 精品国产百合女同互慰| 国产一级精品在线| **性色生活片久久毛片| av一区二区三区黑人| 亚洲综合免费观看高清完整版在线 | 国产婷婷一区二区| 91香蕉视频黄| 日欧美一区二区| 91精品视频网| 一区av在线播放| 在线视频国内自拍亚洲视频| 午夜欧美在线一二页| 日韩一区二区三区四区|