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

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

?? diag.c

?? s3c2510 VxWorks BSP包
?? C
?? 第 1 頁 / 共 4 頁
字號:
/* diag.c - Diagnostic test */

/* Copyright 2002 TAEBAEK Soft Corp. */



/*
modification history
--------------------
01a,08feb02,jmLee   created.
*/


#include "vxWorks.h"
#include "config.h"
#include "string.h"
#include "intLib.h"
#include "logLib.h"
#include "stdio.h"
#include "time.h"
#include "taskLib.h"
#include "wdLib.h"
#include "vxLib.h"
#include "tyLib.h"

#include "drv/timer/timerDev.h"
#include "tickLib.h"
#include "etherLib.h"
#include "muxLib.h"

#include "drv/multi/s3c2510.h"
#include "s3c2510Eth.h"
#include "diag.h"


#define DIAG_BUF_SIZE                   2048
#define DIAG_TASK
#undef  DIAG_QUIET

LOCAL STATUS diagAddress(UINT32 *ptr32, int length);
#ifdef  DIAG_ALIGN
LOCAL STATUS diagAlign1(UINT32 *ptr32, int length);
LOCAL STATUS diagAlign2(UINT32 *ptr32, int length);
LOCAL STATUS diagAlign3(UINT32 *ptr32, int length);
#endif  /* DIAG_ALIGN */
LOCAL STATUS diagIncFrom0x00(UINT8 *ptr, int length);
LOCAL STATUS diagDecFrom0xFF(UINT8 *ptr, int length);
LOCAL STATUS diagIncWalkingOne(UINT8 *ptr, int length);
LOCAL STATUS diagDecWalkingOne(UINT8 *ptr, int length);
LOCAL STATUS diagAll0x55(UINT8 *ptr, int length);
LOCAL STATUS diagAll0xAA(UINT8 *ptr, int length);
LOCAL STATUS diagAll0x00(UINT8 *ptr, int length);
LOCAL STATUS diagAll0xFF(UINT8 *ptr, int length);
LOCAL STATUS diagMem(UINT8 *ptr, int length);

LOCAL void   diagEthMakeHeader(ETH_DRV_CTRL *pDrvCtrl, PETHTBD pTbd);
LOCAL STATUS diagEthLoopTest(ETH_DRV_CTRL *pDrvCtrl1, ETH_DRV_CTRL *pDrvCtrl2, int repeat);
LOCAL STATUS diagEthRateTest1(ETH_DRV_CTRL *pDrvCtrl1, ETH_DRV_CTRL *pDrvCtrl2, int repeat);
LOCAL STATUS diagEthRateTest2(ETH_DRV_CTRL *pDrvCtrl1, ETH_DRV_CTRL *pDrvCtrl2, int repeat);
LOCAL STATUS diagEthRateTest3(ETH_DRV_CTRL *pDrvCtrl1, ETH_DRV_CTRL *pDrvCtrl2, int repeat);
LOCAL void   taskDiagEth(int unit, int repeat);
LOCAL void   taskDiagEth2(int unit1, int unit2, int repeat);

/*
LOCAL void   diagSarMakeHeader(SAR_DRV_CTRL *pDrvCtrl, PSARTBD pTbd);
LOCAL STATUS diagSarLoopTest(SAR_DRV_CTRL *pDrvCtrl1, SAR_DRV_CTRL *pDrvCtrl2, int repeat);
LOCAL STATUS diagSarRateTest1(SAR_DRV_CTRL *pDrvCtrl1, SAR_DRV_CTRL *pDrvCtrl2, int repeat);
LOCAL STATUS diagSarRateTest2(SAR_DRV_CTRL *pDrvCtrl1, SAR_DRV_CTRL *pDrvCtrl2, int repeat);
LOCAL STATUS diagSarRateTest3(SAR_DRV_CTRL *pDrvCtrl1, SAR_DRV_CTRL *pDrvCtrl2, int repeat);
LOCAL void   taskDiagSar(int unit, int repeat);
LOCAL void   taskDiagSar2(int unit1, int unit2, int repeat);
*/
LOCAL int lengthFrame = 46;

LOCAL UCHAR buffer[DIAG_BUF_SIZE];


void diagHexDump(UCHAR *p, ULONG l)
{
    ULONG i;

    while (l)
    {
        printf("%08X:  ", (UINT32)p);
        for (i=0; i<16; i++)
        {
            printf("%02X ", *p++);

            if (--l == 0)
            {
                break;
            }
        }
        printf("\n");
    }
}

/* Address */
STATUS diagAddress(UINT32 *ptr32, int length)
{
    int i;

    printf("       Address ...................");

    for (i=0; i<length/4; i++)
    {
        ptr32[i] = (UINT32)(ptr32 + i);
    }
    for (i=0; i<length/4; i++)
    {
        if (ptr32[i] != (UINT32)(ptr32 + i))
        {
            printf("Mismatch\n       (offset 0x%08X, read 0x%08X, expect 0x%08X)\n\n",
                    (UINT32)(i * 4), 
                    ptr32[i],
                    (UINT32)(ptr32 + i)
                    );

            return ERROR;
        }
    }
    printf("OK\n");

    return OK;
}

#ifdef  DIAG_ALIGN
/* Align 1 */
STATUS diagAlign1(UINT32 *ptr32, int length)
{
    int i;

    printf("       Align 1....................");

    for (i=0; i<length/4; i+=2)
    {
        ptr32[i+0] = 0x01234567;
        ptr32[i+1] = 0x89abcdef;
    }
    ptr32 = (UINT32 *)(((UCHAR *)ptr32) + 1);
    for (i=0; i<length/4; i+=2)
    {
#if     _BYTE_ORDER==_BIG_ENDIAN
        if (ptr32[i] != 0x23456789)
#else   /* #if _BYTE_ORDER==_BIG_ENDIAN */
        if (ptr32[i] != 0xef012345)
#endif  /* #if _BYTE_ORDER==_BIG_ENDIAN */
        {
            printf("Mismatch\n       (offset 0x%08X, read 0x%08X, expect 0x%08X)\n\n",
                    (UINT32)(i * 4), 
                    ptr32[i],
#if     _BYTE_ORDER==_BIG_ENDIAN
                    0x23456789
#else   /* #if _BYTE_ORDER==_BIG_ENDIAN */
                    0xef012345
#endif  /* #if _BYTE_ORDER==_BIG_ENDIAN */
                    );

            return ERROR;
        }
    }
    printf("OK\n");

    return OK;
}

/* Align 2 */
STATUS diagAlign2(UINT32 *ptr32, int length)
{
    int i;

    printf("       Align 2....................");

    for (i=0; i<length/4; i+=2)
    {
        ptr32[i+0] = 0x01234567;
        ptr32[i+1] = 0x89abcdef;
    }
    ptr32 = (UINT32 *)(((UCHAR *)ptr32) + 2);
    for (i=0; i<length/4; i+=2)
    {
#if     _BYTE_ORDER==_BIG_ENDIAN
        if (ptr32[i] != 0x456789ab)
#else   /* #if _BYTE_ORDER==_BIG_ENDIAN */
        if (ptr32[i] != 0xcdef0123)
#endif  /* #if _BYTE_ORDER==_BIG_ENDIAN */
        {
            printf("Mismatch\n       (offset 0x%08X, read 0x%08X, expect 0x%08X)\n\n",
                    (UINT32)(i * 4), 
                    ptr32[i],
#if     _BYTE_ORDER==_BIG_ENDIAN
                    0x456789ab
#else   /* #if _BYTE_ORDER==_BIG_ENDIAN */
                    0xcdef0123
#endif  /* #if _BYTE_ORDER==_BIG_ENDIAN */
                    );

            return ERROR;
        }
    }
    printf("OK\n");

    return OK;
}

/* Align 3 */
STATUS diagAlign3(UINT32 *ptr32, int length)
{
    int i;

    printf("       Align 3....................");

    for (i=0; i<length/4; i+=2)
    {
        ptr32[i+0] = 0x01234567;
        ptr32[i+1] = 0x89abcdef;
    }
    ptr32 = (UINT32 *)(((UCHAR *)ptr32) + 3);
    for (i=0; i<length/4; i+=2)
    {
#if     _BYTE_ORDER==_BIG_ENDIAN
        if (ptr32[i] != 0x6789abcd)
#else   /* #if _BYTE_ORDER==_BIG_ENDIAN */
        if (ptr32[i] != 0xabcdef01)
#endif  /* #if _BYTE_ORDER==_BIG_ENDIAN */
        {
            printf("Mismatch\n       (offset 0x%08X, read 0x%08X, expect 0x%08X)\n\n",
                    (UINT32)(i * 4), 
                    ptr32[i],
#if     _BYTE_ORDER==_BIG_ENDIAN
                    0x6789abcd
#else   /* #if _BYTE_ORDER==_BIG_ENDIAN */
                    0xabcdef01
#endif  /* #if _BYTE_ORDER==_BIG_ENDIAN */
                    );

            return ERROR;
        }
    }
    printf("OK\n");

    return OK;
}
#endif  /* DIAG_ALIGN */

/* Increment from 0x00 */
STATUS diagIncFrom0x00(UINT8 *ptr, int length)
{
    int i, pattern;

    printf("       Increment from 0x00 .......");
    for (i=0, pattern=0x00; i<length; i++, pattern++)
    {
        ptr[i] = (UINT8)pattern;
    }
    for (i=0, pattern=0x00; i<length; i++, pattern++)
    {
        if (ptr[i] != (UINT8)pattern)
        {
            printf("Mismatch\n       (offset 0x%08X, read 0x%02X, expect 0x%02X)\n\n",
                    (UINT32)i,
                    ptr[i],
                    (UINT8)pattern
                    );

            return ERROR;
        }
    }
    printf("OK\n");

    return OK;
}

/* Decrement from 0xFF */
STATUS diagDecFrom0xFF(UINT8 *ptr, int length)
{
    int i, pattern;

    printf("       Decrement from 0xFF .......");
    for (i=0, pattern=0xff; i<length; i++, pattern--)
    {
        ptr[i] = (UINT8)pattern;
    }
    for (i=0, pattern=0xff; i<length; i++, pattern--)
    {
        if (ptr[i] != (UINT8)pattern)
        {
            printf("Mismatch\n       (offset 0x%08X, read 0x%02X, expect 0x%02X)\n\n",
                    (UINT32)i,
                    ptr[i],
                    (UINT8)pattern
                    );

            return ERROR;
        }
    }
    printf("OK\n");

    return OK;
}

/* Increasing walking ones */
STATUS diagIncWalkingOne(UINT8 *ptr, int length)
{
    int i, pattern;

    printf("       Increasing walking ones ...");
    for (i=0, pattern=0x01; i<length; i++, pattern<<=1)
    {
        if (pattern == 0x100)
        {
            pattern = 0x01;
        }
        ptr[i] = (UINT8)pattern;
    }
    for (i=0, pattern=0x01; i<length; i++, pattern<<=1)
    {
        if (pattern == 0x100)
        {
            pattern = 0x01;
        }
        if (ptr[i] != (UINT8)pattern)
        {
            printf("Mismatch\n       (offset 0x%08X, read 0x%02X, expect 0x%02X)\n\n",
                    (UINT32)i,
                    ptr[i],
                    (UINT8)pattern
                    );

            return ERROR;
        }
    }
    printf("OK\n");

    return OK;
}

/* Decreasing walking ones */
STATUS diagDecWalkingOne(UINT8 *ptr, int length)
{
    int i, pattern;

    printf("       Decreasing walking ones ...");
    for (i=0, pattern=0x80; i<length; i++, pattern>>=1)
    {
        if (pattern == 0x00)
        {
            pattern = 0x80;
        }
        ptr[i] = (UINT8)pattern;
    }
    for (i=0, pattern=0x80; i<length; i++, pattern>>=1)
    {
        if (pattern == 0x00)
        {
            pattern = 0x80;
        }
        if (ptr[i] != (UINT8)pattern)
        {
            printf("Mismatch\n       (offset 0x%08X, read 0x%02X, expect 0x%02X)\n\n",
                    (UINT32)i,
                    ptr[i],
                    (UINT8)pattern
                    );

            return ERROR;
        }
    }
    printf("OK\n");

    return OK;
}

/* All 0x55 */
STATUS diagAll0x55(UINT8 *ptr, int length)
{
    int i, pattern;

    printf("       Pattern 0x55 ..............");
    for (i=0, pattern=0x55; i<length; i++)
    {
        ptr[i] = (UINT8)pattern;
    }
    for (i=0, pattern=0x55; i<length; i++)
    {
        if (ptr[i] != (UINT8)pattern)
        {
            printf("Mismatch\n       (offset 0x%08X, read 0x%02X, expect 0x%02X)\n\n",
                    (UINT32)i,
                    ptr[i],
                    (UINT8)pattern
                    );

            return ERROR;
        }
    }
    printf("OK\n");

    return OK;
}

/* All 0xAA */
STATUS diagAll0xAA(UINT8 *ptr, int length)
{
    int i, pattern;

    printf("       Pattern 0xAA ..............");
    for (i=0, pattern=0xaa; i<length; i++)
    {
        ptr[i] = (UINT8)pattern;
    }
    for (i=0, pattern=0xaa; i<length; i++)
    {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91丨porny丨在线| 在线观看精品一区| 国产亚洲一区二区三区在线观看 | 欧美精品亚洲二区| 久久99精品国产| 自拍偷拍国产精品| 91精品综合久久久久久| 国产精品资源站在线| 亚洲一区二区综合| 国产精品免费视频观看| 日韩欧美国产精品| 欧美系列在线观看| 99精品欧美一区二区三区综合在线| 日产精品久久久久久久性色| 中文字幕一区在线| 久久综合一区二区| 在线播放中文字幕一区| 在线电影欧美成精品| 精品av久久707| 精品嫩草影院久久| 制服视频三区第一页精品| 欧美一区二区三区性视频| 91国模大尺度私拍在线视频| 粉嫩欧美一区二区三区高清影视| 毛片av一区二区| 日本不卡一区二区| 天天操天天干天天综合网| 亚洲综合图片区| 黄色日韩网站视频| 日本不卡123| 激情深爱一区二区| 亚洲欧美韩国综合色| 91福利社在线观看| 欧美成va人片在线观看| 亚洲欧美日韩久久| 日韩精品乱码av一区二区| 日韩亚洲欧美一区二区三区| 日韩免费性生活视频播放| 丝袜诱惑制服诱惑色一区在线观看 | 久久精品亚洲麻豆av一区二区 | 91福利国产成人精品照片| 亚洲欧美欧美一区二区三区| 色又黄又爽网站www久久| 久久综合久久久久88| 国产老妇另类xxxxx| 国产精品网站在线| 色综合夜色一区| 久久精品一区蜜桃臀影院| 国产成人在线免费| 久久久久久夜精品精品免费| 午夜在线成人av| 色婷婷精品大在线视频| 亚洲国产精品一区二区久久| 成人精品电影在线观看| 337p日本欧洲亚洲大胆精品| 国产成人啪免费观看软件| 亚洲欧洲成人精品av97| 欧美在线你懂的| 久久国产人妖系列| 91精品久久久久久蜜臀| 国产在线乱码一区二区三区| 国产精品三级视频| 欧美三级日本三级少妇99| 亚洲毛片av在线| 欧美变态tickling挠脚心| 成人av网站免费| 日本va欧美va瓶| 国产三级三级三级精品8ⅰ区| 91福利国产成人精品照片| 激情深爱一区二区| 一区二区三区在线影院| 欧日韩精品视频| 激情综合一区二区三区| 亚洲一二三区不卡| 久久久久久久久久久久久夜| 日本道精品一区二区三区| 国产一区福利在线| 国产欧美精品国产国产专区| 成人动漫视频在线| 蜜臀av性久久久久蜜臀av麻豆| 国产精品成人在线观看| 日本韩国一区二区| 精品一区二区免费视频| 一区二区三区影院| 国产丝袜欧美中文另类| 欧美一区二区视频在线观看| 91久久一区二区| 成人午夜短视频| 亚洲一区二区高清| 国产精品污污网站在线观看| 欧美一级欧美一级在线播放| 色婷婷一区二区三区四区| 成人一区二区视频| 精品一区二区三区香蕉蜜桃| 日韩av一二三| 亚洲国产综合视频在线观看| 自拍偷拍国产精品| 中文字幕中文乱码欧美一区二区| 久久综合色综合88| 日韩欧美国产综合在线一区二区三区| 欧美日韩一级片在线观看| 91色在线porny| 大胆欧美人体老妇| 国产一区二区三区电影在线观看 | 亚洲男同性恋视频| 国产精品视频免费看| 久久欧美一区二区| 久久久综合精品| 日韩欧美国产综合一区 | 中文字幕精品一区二区精品绿巨人 | 亚洲欧美日本韩国| 亚洲婷婷在线视频| 亚洲人成人一区二区在线观看| 国产精品久久久久久妇女6080 | 久久精品一区二区| 欧美精品一区二区在线观看| 欧美大胆人体bbbb| 日韩欧美一区电影| 久久亚洲二区三区| 国产日本一区二区| 国产精品丝袜黑色高跟| 亚洲欧洲国产日本综合| 亚洲免费三区一区二区| 亚洲精品中文字幕在线观看| 久久久噜噜噜久久中文字幕色伊伊| 欧美不卡一区二区三区四区| 精品国产乱码久久久久久久久| 欧美精品一区二区在线观看| 日本一区二区三区在线不卡| 成人免费视频在线观看| 亚洲高清久久久| 日韩av中文字幕一区二区| 狠狠色综合日日| 成人av资源站| 欧美撒尿777hd撒尿| 欧美一区二区成人| 久久免费视频一区| 亚洲欧美色综合| 日韩精品亚洲一区| 国产在线精品免费| 91浏览器在线视频| 欧美肥大bbwbbw高潮| 亚洲精品在线观看网站| 亚洲日本在线天堂| 男人的j进女人的j一区| 豆国产96在线|亚洲| 欧美久久一二三四区| www国产成人免费观看视频 深夜成人网| 国产日产欧美一区| 亚洲成a人片在线观看中文| 捆绑调教美女网站视频一区| 不卡高清视频专区| 欧美精品九九99久久| 国产精品美女一区二区在线观看| 亚洲国产aⅴ成人精品无吗| 国产精品亚洲综合一区在线观看| 日本福利一区二区| 久久综合久久综合久久综合| 亚洲一区二区三区自拍| 国产成人啪午夜精品网站男同| 欧美视频自拍偷拍| 中文字幕免费在线观看视频一区| 亚洲自拍偷拍九九九| 国产xxx精品视频大全| 欧美色窝79yyyycom| 国产欧美综合在线观看第十页| 亚洲一区二区三区四区在线 | 欧美综合在线视频| 国产农村妇女毛片精品久久麻豆 | 日韩电影免费一区| av不卡免费在线观看| 91丨porny丨中文| 久久久久久麻豆| 亚洲成人1区2区| 色综合天天做天天爱| 国产欧美精品区一区二区三区| 免费精品视频在线| 欧美日韩黄色一区二区| 日韩欧美卡一卡二| 亚洲国产精品欧美一二99| 99在线精品视频| 欧美国产日韩在线观看| 韩国一区二区在线观看| 56国语精品自产拍在线观看| 一区二区三区国产精华| 成人av免费在线观看| 久久精品在这里| 韩国女主播成人在线| 日韩视频免费观看高清完整版 | 91精品国产日韩91久久久久久| 亚洲美女一区二区三区| 成人亚洲精品久久久久软件| 久久久久久久电影| 国模少妇一区二区三区| 精品国产91亚洲一区二区三区婷婷| 日av在线不卡| 56国语精品自产拍在线观看| 日韩电影在线观看电影| 制服视频三区第一页精品| 奇米色一区二区三区四区|