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

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

?? syslib.c

?? S3C2410的DM9000驅動。在優龍的開發板子上調試成功
?? C
?? 第 1 頁 / 共 2 頁
字號:
    PLLFEED = 0x55;

    /* 設置存儲器加速模塊 */
    /* Set memory accelerater module*/
    MAMCR = 0;
#if Fcclk < 20000000
    MAMTIM = 1;
#else
#if Fcclk < 40000000
    MAMTIM = 2;
#else
#if Fcclk < 60000000
    MAMTIM = 3;
#else
#if Fcclk < 80000000
    MAMTIM = 4;
#else
#if Fcclk < 100000000
    MAMTIM = 5;
#else
#if Fcclk < 120000000
    MAMTIM = 6;
#else
    MAMTIM = 7;
#endif
#endif
#endif
#endif
#endif
#endif


    /* initialize the interrupt library and interrupt driver */
    intLibInit (LPC2210_INTNUMLEVELS, LPC2210_INTNUMLEVELS, INT_MODE);
    lpc2210IntDevInit();

    /* connect sys clock interrupt and auxiliary clock interrupt */
    (void)intConnect(INT_VEC_TIMER0, sysClkInt, 0);
	/* VICVectCntl0 = (0x20 | 4);
	VICVectAddr0 = (FUNCPTR)sysClkInt;
	VICIntEnable = (1 << 4); */


    /*(void)intConnect(INT_VEC_TIMER1, sysAuxClkInt, 0);*/
    /* (void)intConnect(INT_VEC_EXTINT3, (VOIDFUNCPTR)IRQ_Eint3, 0); */
    
    /* connect serial interrupt */
    sysSerialHwInit2();

#if defined (INCLUDE_USB)
    /* Low level init for usb */

    sysUsbPciInit();

#endif
}

/******************************************************************************
*
* sysPhysMemTop - get the address of the top of physical memory
*
* This routine returns the address of the first missing byte of memory,
* which indicates the top of memory.
*
* Normally, the user specifies the amount of physical memory with the
* macro LOCAL_MEM_SIZE in config.h.  BSPs that support run-time
* memory sizing do so only if the macro LOCAL_MEM_AUTOSIZE is defined.
* If not defined, then LOCAL_MEM_SIZE is assumed to be, and must be, the
* true size of physical memory.
*
* NOTE: Do no adjust LOCAL_MEM_SIZE to reserve memory for application
* use.  See sysMemTop() for more information on reserving memory.
*
* RETURNS: The address of the top of physical memory.
*
* SEE ALSO: sysMemTop()
*/

char * sysPhysMemTop (void)
    {
    static char * physTop = NULL;

    if (physTop == NULL)
        {
#ifdef LOCAL_MEM_AUTOSIZE

        /* If auto-sizing is possible, this would be the spot.  */

#    error   "Dynamic memory sizing not supported"

#else
        /* Don't do autosizing, if size is given */

        physTop = (char *)(LOCAL_MEM_LOCAL_ADRS + LOCAL_MEM_SIZE);

#endif /* LOCAL_MEM_AUTOSIZE */
        }

    return physTop;
    }

/******************************************************************************
*
* sysMemTop - get the address of the top of VxWorks memory
*
* This routine returns a pointer to the first byte of memory not
* controlled or used by VxWorks.
*
* The user can reserve memory space by defining the macro USER_RESERVED_MEM
* in config.h.  This routine returns the address of the reserved memory
* area.  The value of USER_RESERVED_MEM is in bytes.
*
* RETURNS: The address of the top of VxWorks memory.
*/

char * sysMemTop (void)
    {
    static char * memTop = NULL;

    if (memTop == NULL)
        {
        memTop = sysPhysMemTop () - USER_RESERVED_MEM;
        }

    return memTop;
    }

/******************************************************************************
*
* sysToMonitor - transfer control to the ROM monitor
*
* This routine transfers control to the ROM monitor.  It is usually called
* only by reboot() -- which services ^X -- and bus errors at interrupt
* level.  However, in some circumstances, the user may wish to introduce a
* new <startType> to enable special boot ROM facilities.
*
* RETURNS: Does not return.
*/

STATUS sysToMonitor
    (
    int startType    /* passed to ROM to tell it how to boot */
    )
    {
    FUNCPTR     pRom;
    UINT32 *    p = (UINT32 *)ROM_TEXT_ADRS;
#ifdef INCLUDE_SNGKS32C_END
    END_OBJ *   pEnd;
#endif

    /*
     * Examine ROM - if it's a VxWorks boot ROM, jump to the warm boot entry
     * point; otherwise jump to the start of the ROM.
     * A VxWorks boot ROM begins
     *    MOV    R0,#BOOT_COLD
     *    B    ...
     *    DCB    "Copyright"
     * We check the first and third words only. This could be tightened up
     * if required (see romInit.s).
     */

#if (_BYTE_ORDER == _LITTLE_ENDIAN)
    if (p[0] == 0xE3A00002 && p[2] == 0x79706F43)
        pRom = (FUNCPTR)(ROM_TEXT_ADRS + 4);    /* warm boot address */
    else
        pRom = (FUNCPTR)ROM_TEXT_ADRS;        /* start of ROM */
#else /* (_BYTE_ORDER == _LITTLE_ENDIAN) */
    if (p[0] == 0xE3A00002 && p[2] == 0x436F7079)
        pRom = (FUNCPTR)(ROM_TEXT_ADRS + 4);    /* warm boot address */
    else
        pRom = (FUNCPTR)ROM_TEXT_ADRS;        /* start of ROM */
#endif /* (_BYTE_ORDER == _LITTLE_ENDIAN) */

#ifdef INCLUDE_SNGKS32C_END
    /*
     * Reset Ethernet controller to prevent it doing anything
     * before jumping to the bootrom.
     */

    pEnd = endFindByName ("sng", 0);

    if (pEnd != NULL)
        pEnd->pFuncTable->stop(pEnd->devObject.pDevice);
#endif /* INCLUDE_SNGKS32C_END */

    (*pRom)(startType);    /* jump to bootrom */

    return OK;        /* in case we ever continue from ROM monitor */
    }

/****************************************************************************
*
* sysProcNumGet - get the processor number
*
* This routine returns the processor number for the CPU board, which is
* set with sysProcNumSet().
*
* RETURNS: The processor number for the CPU board.
*
* SEE ALSO: sysProcNumSet()
*/

int sysProcNumGet (void)
    {
    return 0;
    }

/****************************************************************************
*
* sysProcNumSet - set the processor number
*
* Set the processor number for the CPU board.  Processor numbers should be
* unique on a single backplane.
*
* NOTE
* By convention, only processor 0 should dual-port its memory.
*
* RETURNS: N/A
*
* SEE ALSO: sysProcNumGet()
*/

void sysProcNumSet
    (
    int procNum        /* processor number */
    )
    {
    sysProcNum = procNum;
    }

#ifdef INCLUDE_FLASH

/* default procedures assume static ram with no special r/w routines */
#ifndef NV_RAM_WR_ENBL
#   define NV_RAM_WR_ENBL    /* no write enable procedure */
#endif /*NV_RAM_WR_ENBL*/

#ifndef NV_RAM_WR_DSBL
#   define NV_RAM_WR_DSBL    /* no write disable procedure */
#endif /*NV_RAM_WR_DSBL*/

#ifndef NV_RAM_READ
#   define NV_RAM_READ(x) \
    (*(UCHAR *)((int)NV_RAM_ADRS + ((x) * NV_RAM_INTRVL)))
#endif /*NV_RAM_READ*/

#ifndef NV_RAM_WRITE
#   define NV_RAM_WRITE(x,y) \
    (*(UCHAR *)((int)NV_RAM_ADRS + ((x) * NV_RAM_INTRVL)) = (y))
#endif /*NV_RAM_WRITE*/
    
/******************************************************************************
*
* sysNvRamGet - get the contents of non-volatile RAM
*
* This routine copies the contents of non-volatile memory into a specified
* string.  The string is terminated with an EOS.
*
* RETURNS: OK, or ERROR if access is outside the non-volatile RAM range.
*
* SEE ALSO: sysNvRamSet()
*/

STATUS sysNvRamGet
    (
    char *string,    /* where to copy non-volatile RAM    */
    int   strLen,      /* maximum number of bytes to copy   */
    int   offset       /* byte offset into non-volatile RAM */
    )

    {
    STATUS retVal;

    offset += NV_BOOT_OFFSET;   /* boot line begins at <offset> = 0 */

    if ((offset < 0)
     || (strLen < 0)
     || ((offset + strLen) > NV_RAM_SIZE))
        return (ERROR);

    retVal = sysFlashGet (string, strLen, offset);
    string [strLen] = EOS;

    return (OK);
    }

/******************************************************************************
*
* sysNvRamSet - write to non-volatile RAM
*
* This routine copies a specified string into non-volatile RAM.
*
* RETURNS: OK, or ERROR if access is outside the non-volatile RAM range.
*
* SEE ALSO: sysNvRamGet()
*/

STATUS sysNvRamSet
    (
    char *string,     /* string to be copied into non-volatile RAM */
    int strLen,       /* maximum number of bytes to copy           */
    int offset        /* byte offset into non-volatile RAM         */
    )

    {
    offset += NV_BOOT_OFFSET;   /* boot line begins at <offset> = 0 */

    if ((offset < 0)
     || (strLen < 0)
     || ((offset + strLen) > NV_RAM_SIZE))
        return ERROR;

    NV_RAM_WR_ENBL;

    return (sysFlashSet (string, strLen, offset));

    }

/******************************************************************************
*
* sysFlashBoardDelay - create a delay
*
* This routine is used by flashMem.c to produce specified delays. It
* appears that the Flash driver cannot use taskDelay() at certain
* points.
*
* RETURNS: N/A
*/

void sysFlashBoardDelay (void)
    {
    return;
    }
#endif /* INCLUDE_FLASH */

#ifdef DEBUG
/******************************************************************************
*
* sysDebug - print message using polled serial driver
*
* Use the polled driver to print debug messages.  Useful before the full
* hardware initialization is complete (but only after sysHwInit).
*
* RETURNS: N/A.
*
* NOMANUAL
*/

void sysDebug
    (
    char *str
    )
    {
    int msgSize;
    int msgIx;
    LOCAL SIO_CHAN * pSioChan;        /* serial I/O channel */
    LOCAL BOOL beenHere = FALSE;

    msgSize = strlen (str);

    if (!beenHere)
        {
        sysSerialHwInit ();

        pSioChan = sysSerialChanGet (0);

        sioIoctl (pSioChan, SIO_BAUD_SET, (void *)CONSOLE_BAUD_RATE);

        sioIoctl (pSioChan, SIO_MODE_SET, (void *) SIO_MODE_POLL);

        beenHere = TRUE;
	}

    for (msgIx = 0; msgIx < msgSize; msgIx++)
        {
        while (sioPollOutput (pSioChan, str[msgIx]) == EAGAIN)
            /* do nothing */;
        }
    }
#endif /* DEBUG */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人免费网站| 亚洲视频在线一区| 久久99精品久久久久久| 欧美一级片免费看| 国产米奇在线777精品观看| 日韩精品一区在线| 国产精品996| 亚洲三级在线观看| 欧美日韩国产综合视频在线观看| 日韩电影在线一区二区三区| 精品久久国产字幕高潮| 国产精品一区一区| 亚洲女同ⅹxx女同tv| 91高清在线观看| 奇米精品一区二区三区四区| 久久免费视频一区| 色综合久久久久综合体桃花网| 亚洲夂夂婷婷色拍ww47| 欧美刺激午夜性久久久久久久| 国产成人午夜99999| 一区二区中文字幕在线| 欧美色综合网站| 精品亚洲国产成人av制服丝袜| 欧美国产国产综合| 欧美日韩一区在线观看| 国产一区二区导航在线播放| 亚洲欧美国产77777| 日韩精品综合一本久道在线视频| 国产成人综合在线| 香蕉乱码成人久久天堂爱免费| 精品免费国产二区三区 | 久久99精品一区二区三区三区| 久久久久综合网| 日本电影欧美片| 国产一区二区不卡老阿姨| 亚洲一区在线观看视频| 久久色视频免费观看| 欧美在线免费观看亚洲| 国产成人在线影院| 三级在线观看一区二区| 国产精品久久久久久久久果冻传媒 | 欧美日韩一区二区在线观看| 国产黄色成人av| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲综合在线第一页| 国产欧美综合在线观看第十页| 欧美日韩二区三区| 91麻豆福利精品推荐| 国产精品一级二级三级| 日韩av电影天堂| 亚洲狠狠爱一区二区三区| 中文字幕亚洲一区二区av在线| 2023国产精品视频| 91精品麻豆日日躁夜夜躁| 91电影在线观看| 99久久er热在这里只有精品15| 国产九色sp调教91| 麻豆传媒一区二区三区| 亚洲成人一二三| 亚洲国产裸拍裸体视频在线观看乱了| 国产亚洲精品bt天堂精选| 日韩亚洲欧美中文三级| 欧美日韩mp4| 欧美日韩精品一二三区| 欧美影视一区二区三区| 色狠狠色噜噜噜综合网| 91美女福利视频| 99久久精品99国产精品| 成人性生交大片免费看视频在线| 国产一区二区三区蝌蚪| 国内久久精品视频| 麻豆国产91在线播放| 久久精品72免费观看| 美女视频黄久久| 激情国产一区二区| 国模套图日韩精品一区二区| 蜜臀久久99精品久久久久宅男| 日本少妇一区二区| 久久99精品国产91久久来源| 久久国产精品区| 国产精品一级黄| 成人国产精品免费观看| 成人av网址在线观看| 99视频超级精品| 一本久久精品一区二区| 91福利区一区二区三区| 欧美日本视频在线| 日韩免费观看高清完整版在线观看| 日韩欧美一级精品久久| 久久久亚洲精品一区二区三区| 国产日韩影视精品| 中文字幕亚洲区| 亚洲一区二区三区三| 秋霞影院一区二区| 国产一区二区三区精品视频| 成人动漫av在线| 色国产综合视频| 69成人精品免费视频| 精品欧美久久久| 亚洲视频在线观看三级| 午夜精品视频一区| 极品美女销魂一区二区三区免费 | 国产精品美女一区二区| 亚洲嫩草精品久久| 日本不卡高清视频| 风间由美一区二区三区在线观看| 97国产精品videossex| 欧美情侣在线播放| 国产欧美中文在线| 亚洲一区二区三区自拍| 国模娜娜一区二区三区| 色婷婷综合在线| 日韩视频在线你懂得| 中文字幕不卡在线| 丝袜亚洲另类欧美| 国产99久久久国产精品免费看| 91麻豆6部合集magnet| 精品国产1区二区| 亚洲乱码一区二区三区在线观看| 日本在线播放一区二区三区| av不卡在线观看| 欧美福利视频导航| 国产精品网友自拍| 美女视频免费一区| 欧美专区亚洲专区| 国产欧美视频在线观看| 亚洲综合免费观看高清完整版 | 国产精品视频一区二区三区不卡| 亚洲观看高清完整版在线观看 | 另类的小说在线视频另类成人小视频在线 | 欧美sm美女调教| 一区二区三区四区在线免费观看| 国产一区二区看久久| 欧美日韩久久不卡| 最新欧美精品一区二区三区| 精品在线观看视频| 欧美无人高清视频在线观看| 久久久高清一区二区三区| 丝瓜av网站精品一区二区| 99久久伊人久久99| 精品91自产拍在线观看一区| 天使萌一区二区三区免费观看| 91免费观看在线| 欧美经典三级视频一区二区三区| 激情综合色播激情啊| 欧美日韩精品电影| 一区二区三区.www| www.欧美亚洲| 欧美国产精品久久| 国产精品一二一区| 久久久久免费观看| 日韩1区2区3区| 56国语精品自产拍在线观看| 一区二区三区四区国产精品| 9i在线看片成人免费| 久久久亚洲午夜电影| 国产一区二区三区免费| www激情久久| 激情久久五月天| 久久综合色婷婷| 九一久久久久久| 欧美大尺度电影在线| 九九国产精品视频| 亚洲精品在线免费观看视频| 另类小说色综合网站| 日韩精品一区二区三区swag| 理论片日本一区| 欧美www视频| 国产一区二区三区综合| 精品av综合导航| 精品一区二区三区在线视频| 欧美精品一区二区三区蜜臀| 国产一区二区福利视频| 国产亚洲精品7777| 99久久精品99国产精品| 亚洲免费观看高清在线观看| 在线观看日韩精品| 亚洲成人黄色影院| 欧美一级免费大片| 寂寞少妇一区二区三区| 亚洲国产精品成人综合色在线婷婷| 成人av在线资源网| 伊人夜夜躁av伊人久久| 3atv在线一区二区三区| 久久国产尿小便嘘嘘尿| 久久久精品中文字幕麻豆发布| 大胆欧美人体老妇| 亚洲愉拍自拍另类高清精品| 91精品国产色综合久久不卡蜜臀 | 亚洲国产精品欧美一二99 | 久久综合99re88久久爱| 高清不卡在线观看| 一区二区三区四区亚洲| 91精品国产一区二区三区香蕉| 麻豆国产精品视频| 中文字幕制服丝袜成人av| 欧美日韩一区二区三区免费看| 日韩精品亚洲一区二区三区免费| 精品sm在线观看| 99久久久久久|