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

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

?? syslib.c

?? 440bx vxworks bsp
?? C
?? 第 1 頁 / 共 3 頁
字號:
#error CPU not supported
#endif /* (CPU == ARMARCH4) */
#else /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/
#if   (CPU == ARMARCH4)
    return    "wrSbcArm7 - ARM7TDMI (ARM) Big Endian";
#elif (CPU == ARMARCH4_T)
    return    "wrSbcArm7 - ARM7TDMI (Thumb) Big Endian";
#else
#error CPU not supported
#endif /* (CPU == ARMARCH4) */
#endif /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/
    }

/******************************************************************************
*
* sysBspRev - return the bsp version with the revision eg 1.1/<x>
*
* This function returns a pointer to a bsp version with the revision.
* for eg. 1.1/<x>. BSP_REV is concatenated to BSP_VERSION to form the
* BSP identification string.
*
* RETURNS: A pointer to the BSP version/revision string.
*/

char * sysBspRev (void)
    {
    return (BSP_VERSION BSP_REV);
    }

/******************************************************************************
*
* sysHwInit - initialize the CPU board hardware
*
* This routine initializes various features of the hardware.
* Normally, it is called from usrInit() in usrConfig.c.
*
* NOTE: This routine should not be called directly by the user.
*
* RETURNS: N/A
*/

void sysHwInit (void)
    {

	/*  : added */
	portInit();
    rtl8019Init();
    s3cExcVecSet();
	
    /* install the IRQ/SVC interrupt stack splitting routine */

    _func_armIntStackSplit = sysIntStackSplit;
#ifdef INCLUDE_LCD	/*  : added */
    sysLcdInit(); /* initialize the LCD panel */

    sysLcdWriteString("   WindRiver    ", 1, 1);
#if (_BYTE_ORDER == _LITTLE_ENDIAN)
#if   (CPU == ARMARCH4)
    sysLcdWriteString("   SBC ARM7     ", 2, 1);
#else  /* ARMARCH4 */
    sysLcdWriteString("   SBC ARM7 (t) ", 2, 1);
#endif  /* ARMARCH4 */
#else /* (_BYTE_ORDER == _LITTLE_ENDIAN) */
#if   (CPU == ARMARCH4)
    sysLcdWriteString("  SBC ARM7 (BE) ", 2, 1);
#else  /* ARMARCH4 */
    sysLcdWriteString("  SBC ARM7 (tBE)", 2, 1);
#endif  /* ARMARCH4 */
#endif /* (_BYTE_ORDER == _LITTLE_ENDIAN) */
#endif /*INCLUDE_LCD*/
#ifdef INCLUDE_LED	/*  : added */
    sysLedInit(); /* initialize the LED */
#endif /*INCLUDE_LED*/
    /* Set the MAC address based on DIP setting
     * The least significant byte of the address is changed to
     * the value of the user DIP switch setting. SW4-D0 is the
     * least significant bit of this byte.  We invert the bits
     * so Open=0.
     */

    /*sysSngks32cMacAddr[5] = ~READ_USERDIP();*/	/*  : deleted */

#ifdef  FORCE_DEFAULT_BOOT_LINE
    strncpy(sysBootLine,DEFAULT_BOOT_LINE,strlen(DEFAULT_BOOT_LINE)+1);
#elif defined INCLUDE_VWARE_LAUNCH
    sysVwareBuildBootLine((char*)&sysSngks32cMacAddr);
#endif /* FORCE_DEFAULT_BOOT_LINE */

    sysSerialHwInit ();      /* initialize serial data structure */

    }

/******************************************************************************
*
* sysHwInit2 - additional system configuration and initialization
*
* This routine connects system interrupts and does any additional
* configuration necessary.
*
* RETURNS: N/A
*
* NOMANUAL
*
* Note: this is called from sysClkConnect() in the timer driver.
*/

void sysHwInit2 (void)
    {
    /* initialize the interrupt library and interrupt driver */


    intLibInit (S3C44B0X_INTNUMLEVELS, S3C44B0X_INTNUMLEVELS, INT_MODE);
    sngks32cIntDevInit();

    /* connect sys clock interrupt and auxiliary clock interrupt */

    (void)intConnect (INUM_TO_IVEC (INT_VEC_TIMER0), sysClkInt, 0);
    (void)intConnect (INUM_TO_IVEC (INT_VEC_TIMER1), sysAuxClkInt, 0);

    /* connect serial interrupt */
    sysSerialHwInit2();
    }

/******************************************************************************
*
* 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

#ifdef INCLUDE_CACHE_SUPPORT
    sngks32cCacheDisable();
#endif /* INCLUDE_CACHE_SUPPORT */

    /*
     * 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)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97精品电影院| 国产精品久久久久久久久快鸭 | 国产高清不卡二三区| 国产精品一卡二卡在线观看| 国产一区视频在线看| 国产福利精品一区| av激情亚洲男人天堂| 91国产视频在线观看| 欧美喷潮久久久xxxxx| 欧美一区二区视频在线观看| 久久亚洲捆绑美女| 中文字幕在线观看不卡| 亚洲另类春色校园小说| 一区在线播放视频| 亚洲福利一区二区三区| 免费精品99久久国产综合精品| 精品一区二区免费在线观看| 成人手机电影网| 欧美性大战久久| 精品国内片67194| 亚洲欧洲日韩综合一区二区| 偷拍日韩校园综合在线| 国产一区91精品张津瑜| 91首页免费视频| 91精品国产欧美一区二区18 | 亚洲桃色在线一区| 婷婷久久综合九色国产成人| 国产一区二区三区四区五区美女| 99久久99久久久精品齐齐| 91精品国产91久久久久久最新毛片| 久久久精品影视| 亚洲一区二区不卡免费| 国产精品一二三四五| 日本精品一区二区三区高清| 日韩欧美一二三区| 国产亚洲一本大道中文在线| 亚洲一级不卡视频| 成人永久aaa| 日韩一级精品视频在线观看| 国产精品国产a| 美国av一区二区| 91香蕉视频mp4| 26uuu国产日韩综合| 一区二区三区精品视频在线| 国产一区二区精品在线观看| 欧美日韩精品一区二区三区蜜桃| 久久精品一区蜜桃臀影院| 亚洲天堂精品视频| 精品中文字幕一区二区| 成人免费福利片| 精品福利二区三区| 亚洲成人第一页| 成人久久视频在线观看| 欧美日韩国产一区二区三区地区| 国产精品午夜久久| 午夜久久久久久| 99久久婷婷国产综合精品| 精品入口麻豆88视频| 亚洲成人你懂的| 91影视在线播放| 中文字幕不卡在线观看| 另类小说综合欧美亚洲| 777奇米成人网| 洋洋av久久久久久久一区| 久久免费美女视频| av在线一区二区三区| 日韩免费电影一区| 亚洲成人免费av| 91在线观看一区二区| 久久久久久久综合日本| 蜜桃精品在线观看| 色综合av在线| 国产精品高潮久久久久无| 国产精品一区免费视频| 精品免费日韩av| 青青青爽久久午夜综合久久午夜| 欧美亚洲高清一区| 亚洲精品乱码久久久久久久久 | 成人av电影观看| 国产女人18水真多18精品一级做 | 欧美一区二区视频观看视频| 中文字幕在线观看不卡视频| 国产美女av一区二区三区| 精品久久五月天| 激情久久久久久久久久久久久久久久| 欧美电影一区二区| 五月天中文字幕一区二区| 成人av免费在线观看| 亚洲一二三区在线观看| av不卡在线观看| 日本一区二区动态图| 国产伦精品一区二区三区免费| 日韩小视频在线观看专区| 一区二区不卡在线视频 午夜欧美不卡在| 国产精品99久久久| 欧美一区欧美二区| 蜜桃av噜噜一区| 久久亚洲精华国产精华液| 国产在线视频一区二区| 日本一区二区三区在线不卡| 国产成人一区二区精品非洲| 国产欧美日韩在线看| 成人午夜激情影院| 国产精品美女一区二区在线观看| av电影天堂一区二区在线观看| 国产亚洲欧美日韩俺去了| 成人高清视频免费观看| 亚洲欧美自拍偷拍| 在线观看国产一区二区| 午夜一区二区三区在线观看| 欧美丰满高潮xxxx喷水动漫| 麻豆91在线播放免费| 精品国产一区二区三区四区四| 国产美女视频91| 337p粉嫩大胆色噜噜噜噜亚洲| 裸体健美xxxx欧美裸体表演| 欧美在线|欧美| 亚洲曰韩产成在线| 91久久精品一区二区三| 亚洲一区二区三区中文字幕| 在线观看日韩高清av| 有码一区二区三区| 欧美年轻男男videosbes| 麻豆久久久久久| 26uuu国产一区二区三区| 成人激情免费电影网址| 亚洲免费高清视频在线| 色狠狠色噜噜噜综合网| 亚洲gay无套男同| 久久免费美女视频| 色综合天天性综合| 男女男精品视频| 国产蜜臀97一区二区三区 | 欧美一级黄色片| 懂色av一区二区三区蜜臀| 亚洲综合自拍偷拍| 日韩欧美久久久| 99精品国产99久久久久久白柏| 视频一区二区三区入口| 欧美国产日韩精品免费观看| 欧美在线看片a免费观看| 极品尤物av久久免费看| 夜夜嗨av一区二区三区网页| 欧美特级限制片免费在线观看| 日韩av一区二| 亚洲欧美一区二区三区孕妇| 26uuuu精品一区二区| 欧美区视频在线观看| 一本一道综合狠狠老| 成人性生交大合| 激情五月激情综合网| 青青草成人在线观看| 一区二区三区在线播| 国产精品婷婷午夜在线观看| 精品久久久久久久人人人人传媒 | 亚洲欧洲av另类| 久久久亚洲综合| 欧美一二区视频| 欧美在线你懂得| 色国产精品一区在线观看| 国产91精品露脸国语对白| 美日韩一级片在线观看| 亚欧色一区w666天堂| 亚洲精品成人精品456| 日韩美女久久久| 中文字幕亚洲电影| 国产精品久久久久久亚洲伦| 国产亚洲欧美色| 欧美韩日一区二区三区| 日本一区二区三区dvd视频在线| 日韩一区二区免费在线观看| 在线成人小视频| 欧美日韩高清一区二区| 欧美日韩在线精品一区二区三区激情 | 波多野结衣中文一区| 国产99久久久精品| 国产成人高清在线| 国产高清精品久久久久| 粉嫩绯色av一区二区在线观看| 国产高清亚洲一区| 成人国产在线观看| gogogo免费视频观看亚洲一| 成人av先锋影音| 成人h精品动漫一区二区三区| 高潮精品一区videoshd| av在线综合网| 日本久久一区二区三区| 91福利资源站| 欧美日韩国产a| 日韩久久免费av| 国产亚洲欧美激情| 国产精品美女久久久久久久| 亚洲同性gay激情无套| 亚洲精品一二三四区| 一区二区久久久久久| 午夜精品在线看| 精品综合免费视频观看| 国产91丝袜在线播放| av资源网一区| 色先锋资源久久综合|