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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? test1.c

?? ppc860平臺上移植uc OS的實例
?? C
字號:
/*
************************************************************
*                         TEST1.C
*                      uCOS EXAMPLE
************************************************************
*/
#include "INCLUDES.H"
#include "trsocket.h"
#include <trmpc860.h>

#define          STK_SIZE       4096
OS_TCB           OSTCBTbl[OS_MAX_TASKS];
UWORD            OSIdleTaskStk[STK_SIZE];
UWORD            Stk1[STK_SIZE];
UWORD            Stk2[STK_SIZE];
UWORD            Stk3[STK_SIZE];
UWORD            Stk4[STK_SIZE];
UWORD            Stk5[STK_SIZE];
UWORD            Stk6[STK_SIZE];
UWORD            Stk7[STK_SIZE];
UWORD            Stk8[STK_SIZE];
UWORD            Stk9[STK_SIZE];
char             Data1;
char             Data2;
char             Data3;
char             Data4;
char             Data5;
char             Data6;
char             Data7;
char             Data8;
char             Data9;

void             treckTask(void *data);
void             timerTask(void *data);
void             recvTask(void *interfaceHandle);
void             serverTask(void *interfaceHandle);
/* void             sendTask(void *interfaceHandle); */
void             OSSetUpTimer(void);
extern           unsigned char tvUdpChecksumOn;

typedef int (*ttFreeRecvBufferFuncPtr)(ttUserInterface interfaceHandle,
             char TM_FAR    *dataPtr);


/*
 * Test Driver
 */

int sendSmallCopy(int sd, struct sockaddr_in *toAddress, char *testPtr);
int sendLargeCopy(int sd, struct sockaddr_in *toAddress, char *testPtr);
int sendSmallNoCopy(int sd, struct sockaddr_in *toAddress);
int sendLargeNoCopy(int sd, struct sockaddr_in *toAddress);
int sendTcpSmallCopy(int sd, char *testPtr);
int sendTcpLargeCopy(int sd, char *testPtr);

static unsigned long testBuf[2000];
static unsigned long testInBuf[2000];
volatile int treckError;
void main(void)
{
    Data1 = '1';
    Data2 = '2';
    Data3 = '3';
    Data4 = '4';
    Data5 = '5';
    Data6 = '6';
    Data7 = '7';
    Data8 = '8';
    Data9 = '9';
    

    OSInit();
    OSTaskCreate(treckTask, (void *)&Data9, (void *)&Stk9[STK_SIZE], 9);
    OSStart();
}
volatile int masterError;
volatile int testType;
volatile unsigned long dataCount;
void treckTask(void *data)
{
    int sd;
    int tsd;
    int errorCode;
    ttUserIpAddress ipAddress;
    ttUserIpAddress netMask;
    ttUserLinkLayer linkLayerHandle;
    ttUserInterface interfaceHandle;
    struct sockaddr_in toAddress;
    char TM_FAR *testBufPtr;
    int         portNumber;
    int         toPortNumber;
    
/* Start Treck */
    tfStartTreck();
/* Use the Ethernet Link Layer (Including ARP) */
    linkLayerHandle=tfUseEthernet();
/* We have to start the timer before we init the SCC because we init the mpc860 in the timer */
    OSSetUpTimer();
/* Add the Interface */
    interfaceHandle=tfAddInterface(
            "MPC860.SCC1",
            linkLayerHandle,
            tfMpc860EtherOpen,
            tfMpc860EtherClose,
            tfMpc860Send,
            tfMpc860Receive,
            (ttFreeRecvBufferFuncPtr)0,
            tfMpc860Ioctl,
            tfMpc860GetPhyAddr,
            &errorCode);

    portNumber=5050;    
/*    toPortNumber=2081;  */
/*    toPortNumber=7; */
    toPortNumber=9; 

/* Start the tasks */
    OSTaskCreate(timerTask, (void *)&interfaceHandle, (void *)&Stk1[STK_SIZE],1);
    OSTaskCreate(recvTask, (void *)&interfaceHandle, (void *)&Stk2[STK_SIZE], 2);
/*    OSTaskCreate(sendTask, (void *)&interfaceHandle, (void *)&Stk3[STK_SIZE], 3); */
/*    OSTaskCreate(serverTask, (void *)&portNumber, (void *)&Stk4[STK_SIZE], 4); */

    ipAddress=inet_addr("208.229.201.110");
/* 255.255.255.192 */    
    netMask=htonl(0xffffffc0);
/* Config the Interface */    
    errorCode=tfConfigInterface(
            interfaceHandle,
            ipAddress,
            netMask,
            TM_DEV_SCATTER_SEND_ENB,  
            5,  
            0);
/* Open a socket */
    toAddress.sin_family=PF_INET;
    toAddress.sin_addr.s_addr=inet_addr("208.229.201.80");
    toAddress.sin_port=htons(toPortNumber);
    tvUdpChecksumOn=0;
   
    testBufPtr=(char *)testBuf;
/* Test Type */
    testType=2;
    dataCount=4;
    sd=socket(PF_INET,SOCK_DGRAM,0);
    tsd=socket(PF_INET,SOCK_STREAM,0);
    switch (testType)
    {
        case 0:
            while (1)
            {
                errorCode=sendSmallCopy(sd, &toAddress,testBufPtr);
                if (errorCode!=TM_ENOERROR)
                {
                    treckError=tfGetSocketError(sd);
                }
            }
            break;
        case 1:
            while (1)
            {
                errorCode=sendLargeCopy(sd, &toAddress,testBufPtr);
                if (errorCode!=TM_ENOERROR)
                {
                    treckError=tfGetSocketError(sd);
                }
            }
            break;
        case 2:
            while (1)
            {
                errorCode=sendSmallNoCopy(sd, &toAddress);
                if (errorCode!=TM_ENOERROR)
                {
                    treckError=tfGetSocketError(sd);
                }
            }
            break;
        case 3:
            while (1)
            {
                errorCode=sendLargeNoCopy(sd, &toAddress);
                if (errorCode!=TM_ENOERROR)
                {
                    treckError=tfGetSocketError(sd);
                }
            }
            break;
        case 4:
            while (1)
            {
                errorCode=connect(tsd,
                         (const struct sockaddr TM_FAR *)&toAddress,
                         sizeof(toAddress));
                if (errorCode!=TM_ENOERROR)
                {
                    treckError=tfGetSocketError(tsd);
                }
                errorCode=sendTcpSmallCopy(tsd,testBufPtr);
                if (errorCode!=TM_ENOERROR)
                {
                    treckError=tfGetSocketError(tsd);
                }
            }
            break;
        case 5:
            while (1)
            {
                errorCode=connect(tsd,
                         (const struct sockaddr TM_FAR *)&toAddress,
                         sizeof(toAddress));
                if (errorCode!=TM_ENOERROR)
                {
                    treckError=tfGetSocketError(tsd);
                }
                errorCode=sendTcpLargeCopy(tsd,testBufPtr);
                if (errorCode!=TM_ENOERROR)
                {
                    treckError=tfGetSocketError(tsd);
                }
            }
            break;
        case 9:
            while (1)
            {
                ;
            }
        default:
            break;
    }
    masterError=errorCode;
}

extern unsigned long     tvMpc860SendPacketCount;
unsigned long tvSocketSendCount;
int sendSmallCopy(int sd, struct sockaddr_in *toAddress, char *testPtr)
{
   int errorCode;
   
   tvSocketSendCount=0UL;
   
   while (1) {
        errorCode = sendto(sd,testPtr,18,0,
            (const struct sockaddr TM_FAR *)toAddress,(int)sizeof(struct sockaddr)); 
        tvSocketSendCount++;
        if (errorCode == -1)
        {
            treckError=tfGetSocketError(sd);
            break;
        }
    }
    return errorCode;
}

int sendTcpSmallCopy(int sd, char *testPtr)
{
   int errorCode;
   
   tvSocketSendCount=0UL;
   while (1) {
        *((unsigned long *)testPtr)=htonl(dataCount++);
        errorCode = send(sd,testPtr,18,0);
        tvSocketSendCount++;
        if (errorCode == -1)
        {
            treckError=tfGetSocketError(sd);
            break;
        }
    }
    return errorCode;
}

int sendTcpLargeCopy(int sd, char *testPtr)
{
   int errorCode;
   int bytes;
   
   tvSocketSendCount=0UL;
   while (1) {
        *((unsigned long *)testPtr)=htonl(dataCount++);
        errorCode = send(sd,testPtr,1900,0);
        tvSocketSendCount++;
        if (errorCode == -1)
        {
            treckError=tfGetSocketError(sd);
            break;
        }
        bytes=recv(sd,testPtr,3000,0);
        if (bytes < 0)
        {
            treckError=tfGetSocketError(sd);
        }
    }
    return errorCode;
}

static unsigned long tlSendCount;
static unsigned long tlRecvCount;

int sendLargeCopy(int sd, struct sockaddr_in *toAddress, char *testPtr)
{
   int errorCode;
   struct sockaddr_in fromAddress;
   int    recvFromLen;
   int    bytes;
   int    count;
   
   tlSendCount=0UL;
   tlRecvCount=0UL;
   while (1) 
   {
        errorCode = sendto(sd,testPtr,1472,0,
            (const struct sockaddr TM_FAR *)toAddress,(int)sizeof(struct sockaddr)); 
        if (errorCode == -1)
        {
            treckError=tfGetSocketError(sd);
            break;
        }
        else
        {
            tlSendCount++;
            for (count=0; count<10000;count++)
            {
                recvFromLen=sizeof(fromAddress);
                bytes=recvfrom(sd,(char TM_FAR *)testInBuf,1472,MSG_DONTWAIT,
                     (struct sockaddr TM_FAR *)&fromAddress,
                     (int TM_FAR *)&recvFromLen);
                if (bytes < 0)
                {
                    treckError=tfGetSocketError(sd);
                    if (treckError!=235)
                    {
                        while(1);
                    }
                }
                else
                {
                    tlRecvCount++;
                    break;
                }
            }
        }
    }
    return errorCode;
}

static long tlTicks;
static unsigned long tlTocks;
void tfKernelSetCritical();
void tfKernelReleaseCritical();
void OSNoInterrupt(void);
int sendSmallNoCopy(int sd, struct sockaddr_in *toAddress)
{
   char         *testPtr;
   int           errorCode;
   ttUserMessage bufferHandle;

   tlTocks=0UL;
   while (1) 
   {
        bufferHandle=tfGetZeroCopyBuffer(18,&testPtr);
        errorCode = tfZeroCopySendTo(sd,bufferHandle,18,0,
            (const struct sockaddr TM_FAR *)toAddress,(int)sizeof(struct sockaddr)); 

        tlTocks++;
        if (errorCode == -1)
        {
            break;
        }
    }
    return errorCode;
}

int sendLargeNoCopy(int sd, struct sockaddr_in *toAddress)
{
   char         *testPtr;
   int           errorCode;
   ttUserMessage bufferHandle;

   while (1) {
        bufferHandle=tfGetZeroCopyBuffer(1472,&testPtr);
        errorCode = tfZeroCopySendTo(sd,bufferHandle,1472,0,
            (const struct sockaddr TM_FAR *)toAddress,(int)sizeof(struct sockaddr)); 
        if (errorCode == -1)
        {
            break;
        }
    }
    return errorCode;
}

void timerTask(void *interfaceHandle)
{
    tlTicks=0;
    while (1) 
    {
        tlTicks++;
        tfTimerUpdate();
        tfTimerExecute(); 
        OSTimeDly(1);
        (void)tfIoctlInterface(*(ttUserInterface *)interfaceHandle,
                               TM_MPC860_REFILL_SCC1|TM_MPC860_SEND_COMPLETE,
                               (void TM_FAR *)0, 0);

    }
}

void recvTask(void *interfaceHandle)
{
    while (1) 
    {
        (void)tfWaitReceiveInterface(*(ttUserInterface *)interfaceHandle);
        (void)tfRecvInterface(*(ttUserInterface *)interfaceHandle); 
    }
}


void serverTask(void *dataPortPtr)
{
    int errorCode;
    int bytes;
    int sd;
    struct sockaddr_in fromAddress;
    struct sockaddr_in ourAddress;
    int    recvFromLen;
    
    sd=socket(PF_INET,SOCK_DGRAM,0);
    if (sd<0)
    {
        treckError=tfGetSocketError(sd);
    }
/* Open a socket */
    ourAddress.sin_family=PF_INET;
    ourAddress.sin_addr.s_addr=inet_addr("127.0.0.1");
    ourAddress.sin_port=htons(*(int *)dataPortPtr);
    errorCode=bind(sd,(const struct sockaddr TM_FAR *)&ourAddress,sizeof(ourAddress));
    if (errorCode!= TM_ENOERROR)
    {
        treckError=tfGetSocketError(sd);
    }
    while (1) 
    {
        recvFromLen=sizeof(fromAddress);
        bytes=recvfrom(sd,(char TM_FAR *)testInBuf,1472,0,
             (struct sockaddr TM_FAR *)&fromAddress,
             (int TM_FAR *)&recvFromLen);
        if (bytes > 0)
        {
            errorCode = sendto(sd,(char TM_FAR *)testInBuf,bytes,0,
                (const struct sockaddr TM_FAR *)&fromAddress,(int)sizeof(struct sockaddr)); 
            if (errorCode <= 0)
            {
                treckError=tfGetSocketError(sd);
            }
        }
        else
        {
            treckError=tfGetSocketError(sd);
        }
             
    }
}
#if 0
void sendTask(void *interfaceHandle)
{
    int errorCode;
    while (1) 
    {
        errorCode=tfWaitSentInterface(*(ttUserInterface *)interfaceHandle);
        if (errorCode==TM_ENOERROR)
        {
            tfSendCompleteInterface(*(ttUserInterface *)interfaceHandle,
                TM_DEV_SEND_COMPLETE_APP);
        }
    }
}
#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品亚洲成a人在线观看| 色88888久久久久久影院按摩| 91成人在线精品| 中文字幕制服丝袜成人av| 久色婷婷小香蕉久久| 欧美日韩国产三级| 日本sm残虐另类| 日韩欧美一区二区视频| 日韩综合在线视频| 欧美肥妇bbw| 日韩va亚洲va欧美va久久| 91精品国产一区二区三区香蕉| 亚洲影院在线观看| 欧美日韩二区三区| 青青草国产精品97视觉盛宴| 欧美xxx久久| 国产一区二区三区av电影| 国产欧美日韩不卡免费| jizz一区二区| 日韩经典一区二区| 精品国产sm最大网站免费看| 高潮精品一区videoshd| 亚洲精品乱码久久久久久日本蜜臀| 在线看一区二区| 婷婷丁香久久五月婷婷| 亚洲色大成网站www久久九九| 欧美久久免费观看| 欧美日韩国产大片| 欧美丰满美乳xxx高潮www| av成人免费在线| 色呦呦国产精品| 一本色道亚洲精品aⅴ| 日本高清免费不卡视频| 99久久777色| 日韩国产在线观看| 欧美女孩性生活视频| 成人高清视频在线观看| 日本一区中文字幕| 亚洲国产日韩av| 亚洲精品高清在线| 中文字幕精品三区| 欧美精品一区二| 91精品国产美女浴室洗澡无遮挡| 成人永久aaa| 国产成人午夜精品影院观看视频 | 久久一区二区三区国产精品| 欧美亚洲综合另类| 在线免费观看不卡av| 91美女片黄在线观看91美女| youjizz国产精品| 国产成人免费在线视频| 国产成人av福利| 国产福利一区二区三区视频| 黄色日韩三级电影| 国产精品一品二品| 国内一区二区在线| 欧美最新大片在线看| 色噜噜夜夜夜综合网| 日本色综合中文字幕| 欧美高清在线一区| 欧美日韩久久一区二区| 国产一区在线观看麻豆| 亚洲人亚洲人成电影网站色| 国产精品视频一二三区| 欧美一区二区三区爱爱| 91精品欧美综合在线观看最新| 色婷婷综合中文久久一本| 在线观看欧美黄色| 欧美精品一级二级三级| 久久久久免费观看| 国产精品女人毛片| 一区二区欧美视频| 毛片基地黄久久久久久天堂| 国产乱子伦一区二区三区国色天香 | 国产精品久久久久国产精品日日| 成人欧美一区二区三区白人| 一区二区三区欧美久久| 久久精品国产精品亚洲红杏| 欧美中文字幕不卡| 欧美久久久久免费| 国产精品美女久久久久aⅴ| 亚洲一区二区欧美日韩| 狠狠久久亚洲欧美| 欧美日韩在线观看一区二区| www成人在线观看| 亚洲一区电影777| 国产精品一线二线三线| 5566中文字幕一区二区电影| 亚洲欧洲www| 成人性生交大片免费看中文网站| 7777精品伊人久久久大香线蕉的 | 久久久久久免费| 青青青伊人色综合久久| 在线看国产一区二区| 国产嫩草影院久久久久| 国产剧情av麻豆香蕉精品| 欧美另类z0zxhd电影| 亚洲精品乱码久久久久久 | 亚洲一区二区三区四区在线| 国产成人精品亚洲日本在线桃色| 日韩欧美综合在线| 免费观看日韩av| 欧美成人伊人久久综合网| 日韩黄色片在线观看| 在线成人av影院| 蜜桃一区二区三区在线| 欧美成人在线直播| 国产一区三区三区| 国产欧美精品一区| 99久久婷婷国产综合精品| 亚洲欧美国产77777| 欧美日韩在线直播| 精品伊人久久久久7777人| 精品三级av在线| 成人午夜视频免费看| 亚洲国产视频a| 日韩女优制服丝袜电影| 国产资源精品在线观看| 亚洲欧洲精品天堂一级 | 欧美精品一区二区三区蜜臀| 成人av午夜电影| 五月婷婷综合在线| 欧美国产日韩精品免费观看| 91成人网在线| 国产成人精品网址| 五月天亚洲婷婷| 国产日韩欧美制服另类| 欧美日韩一卡二卡三卡| 成人网在线播放| 麻豆成人综合网| 亚洲一区二区三区不卡国产欧美| 久久久久久久久久久久久久久99 | 在线国产电影不卡| 亚洲免费av高清| 精品电影一区二区| 国产精品不卡一区| 国产日韩欧美精品一区| 99久久精品情趣| 色久优优欧美色久优优| 欧美肥胖老妇做爰| 久久先锋资源网| 亚洲欧美一区二区三区极速播放| 亚洲男同性视频| 日本美女视频一区二区| 国产精一区二区三区| av午夜一区麻豆| 在线不卡欧美精品一区二区三区| 欧美精品乱人伦久久久久久| 在线播放欧美女士性生活| 欧美成人精品1314www| 国产精品免费人成网站| 亚洲成人av电影在线| 中文字幕亚洲在| 日韩**一区毛片| 国产一区视频网站| 99国产精品99久久久久久| 欧美在线一区二区三区| 日韩欧美123| 亚洲精品国产品国语在线app| 亚洲亚洲精品在线观看| 国产在线精品一区二区夜色| 成人一道本在线| 欧美一级视频精品观看| 亚洲国产成人午夜在线一区| 亚洲一区二区三区三| 国产精品综合久久| 欧美日韩精品一区二区三区四区 | 中文字幕一区二区三区在线观看| 亚洲一区二区在线免费看| 国产福利视频一区二区三区| 欧美伦理视频网站| 亚洲一区二区视频在线| 波多野结衣在线一区| 欧美电影免费观看高清完整版在 | 久久嫩草精品久久久久| 亚洲免费观看高清完整版在线观看熊 | 欧美第一区第二区| 亚洲一区二区三区自拍| 91女人视频在线观看| 国产精品久久久久久久久图文区 | 成a人片国产精品| 久久美女艺术照精彩视频福利播放| 偷拍自拍另类欧美| 欧洲日韩一区二区三区| 亚洲第一会所有码转帖| 91精品欧美久久久久久动漫| 精品影院一区二区久久久| 亚洲国产高清aⅴ视频| 欧美日韩夫妻久久| 国产成人高清视频| 天堂久久久久va久久久久| 欧美大片在线观看一区二区| 日韩av在线发布| 26uuu精品一区二区三区四区在线| 久久爱www久久做| 欧美—级在线免费片| youjizz久久| 亚洲大片精品永久免费| 欧美成人精品高清在线播放| 国产成人亚洲精品青草天美 |