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

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

?? syslib.c

?? Vxworks下BSP源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
#error CPU not supported#endif /* (CPU == ARMARCH4) */#else /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/#if   (CPU == ARMARCH4)    return    "AT91Arm9 - ARM920T (ARM) Big Endian";#elif (CPU == ARMARCH4_T)    return    "AT91Arm9 - ARM920T (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)    {	/*	excVectInst();*/ 	    /* install the IRQ/SVC interrupt stack splitting routine */    _func_armIntStackSplit = sysIntStackSplit;#if 0    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) */    sysLedInit(); /* initialize the LED */#endif#ifdef  FORCE_DEFAULT_BOOT_LINE    strncpy(sysBootLine,DEFAULT_BOOT_LINE,strlen(DEFAULT_BOOT_LINE)+1);#elif defined INCLUDE_VWARE_LAUNCH    sysVwareBuildBootLine((char*)&sysAt91cMacAddr);#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 (AT91C_INTNUMLEVELS, AT91C_INTNUMLEVELS, INT_MODE);    at91cIntDevInit();    /* connect sys clock interrupt and auxiliary clock interrupt *//*Add to serial int*//*   (void)intConnect (INUM_TO_IVEC (INT_VEC_SYSIRQ), sysClkInt, 0);*/	/*sys interrupt *//*    (void)intConnect (INUM_TO_IVEC (INT_VEC_TIMER1), sysAuxClkInt, 0);*//*it is my define*/    /* connect serial interrupt */	sysSerialHwInit2();#ifdef INCLUDE_USB    /* Low level init for usb */    sysUsbPciInit();#endif/*myDelay();*/    }/******************************************************************************** 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_AT91C_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_AT91C_END    /*     * Reset Ethernet controller to prevent it doing anything     * before jumping to the bootrom.     */    pEnd = endFindByName ("atm", 0);    if (pEnd != NULL)        pEnd->pFuncTable->stop(pEnd->devObject.pDevice);#endif /* INCLUDE_AT91C_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 */#if 0void excVectInst(void){	int i;	armInitExceptionModes();	 for (i = 0; i < SYS_EXC_NUM; ++i)	{		*(UINT32 *)(sysExcTbl[i].vector) = (UINT32)0xe59ff0f4;  /* jump to next 0xfc */       	*(UINT32 *)(sysExcTbl[i].vector + 0xfc) = (UINT32)(sysExcTbl[i].func);	}    _func_armIrqHandler = excIntHandle;/*系統匯編程序里??調用check函數獲取中斷

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲影院在线观看| 99久久久无码国产精品| 亚洲成年人影院| 亚洲精品视频一区二区| 亚洲视频免费在线观看| 亚洲激情自拍偷拍| 欧美亚洲国产怡红院影院| 色狠狠色狠狠综合| 69av一区二区三区| 欧美人与禽zozo性伦| 在线成人免费观看| 日本精品视频一区二区| 日本精品裸体写真集在线观看 | 欧美视频一二三区| 亚洲欧洲日韩综合一区二区| 亚洲乱码日产精品bd| 亚洲国产综合视频在线观看| 奇米影视在线99精品| 国产麻豆精品视频| 成人精品亚洲人成在线| 97精品国产露脸对白| 国产精品女人毛片| 国产日韩欧美精品综合| 久久久久亚洲蜜桃| 中文字幕一区二区视频| 日韩激情视频网站| 成人做爰69片免费看网站| 色综合网色综合| 麻豆国产精品视频| 91亚洲永久精品| 欧美va亚洲va香蕉在线| 亚洲欧美一区二区三区孕妇| 首页亚洲欧美制服丝腿| 国产91精品一区二区麻豆亚洲| 色香色香欲天天天影视综合网| 日韩欧美二区三区| 一区二区高清免费观看影视大全| 麻豆一区二区三区| 欧洲色大大久久| 亚洲国产高清在线| 麻豆国产欧美一区二区三区| 91视频com| 国产欧美日韩激情| 美腿丝袜亚洲三区| 欧美色图12p| 亚洲人精品午夜| 国产精品538一区二区在线| 欧美人妖巨大在线| 亚洲欧美偷拍卡通变态| 国产精品一二一区| 日本不卡一区二区三区| 91蝌蚪国产九色| 国产女同性恋一区二区| 久久国产综合精品| 亚洲国产日日夜夜| 一本一本久久a久久精品综合麻豆| 欧美丰满嫩嫩电影| 亚洲一区二区偷拍精品| 成人免费视频视频| 欧美精品一区二区不卡| 日日摸夜夜添夜夜添精品视频| 成人一级视频在线观看| 久久久不卡网国产精品一区| 欧美日韩在线三区| 亚洲午夜电影在线| 成人精品gif动图一区| 国产女人18毛片水真多成人如厕| 麻豆成人免费电影| 日韩欧美在线不卡| 精品中文字幕一区二区小辣椒| 亚洲女同ⅹxx女同tv| 国内久久精品视频| 亚洲精品一区在线观看| 韩日精品视频一区| 26uuu精品一区二区在线观看| 午夜视频一区在线观看| 欧洲精品在线观看| 一级女性全黄久久生活片免费| 亚洲精品中文字幕在线观看| 色综合夜色一区| 亚洲电影中文字幕在线观看| 欧美三区免费完整视频在线观看| 一区二区三区四区视频精品免费 | 国产亚洲制服色| 国产成人av一区二区三区在线 | 日韩午夜激情电影| 麻豆国产91在线播放| 国产亚洲成年网址在线观看| 国产成人精品一区二区三区四区 | 色狠狠色噜噜噜综合网| 亚洲h动漫在线| 精品国产免费人成在线观看| 国产精品小仙女| 亚洲激情六月丁香| 欧美一级视频精品观看| 风间由美中文字幕在线看视频国产欧美 | 中文字幕视频一区| 欧美在线免费观看视频| 免费看欧美美女黄的网站| 久久精品一区二区| 在线观看视频一区二区欧美日韩| 日日夜夜精品视频免费| 亚洲国产精品二十页| 欧美三区在线观看| 国产69精品久久久久777| 亚洲一二三四在线| 久久久综合视频| 欧美日韩综合不卡| 高清久久久久久| 丝袜美腿亚洲一区二区图片| 亚洲国产高清在线观看视频| 亚洲综合色成人| 久久久一区二区三区捆绑**| 在线免费亚洲电影| 国产91在线|亚洲| 日精品一区二区三区| 国产精品香蕉一区二区三区| 亚洲动漫第一页| 日韩理论片一区二区| 精品欧美乱码久久久久久1区2区| 日本伦理一区二区| 成人国产在线观看| 极品瑜伽女神91| 天天影视网天天综合色在线播放| 国产精品免费看片| 久久天天做天天爱综合色| 欧美亚洲一区二区在线观看| 成人av在线资源网站| 国产资源在线一区| 日韩av午夜在线观看| 亚洲国产综合91精品麻豆| 亚洲男同1069视频| 国产精品久久久久久久久久久免费看 | 亚洲特黄一级片| 日本一二三四高清不卡| 久久影视一区二区| 精品国精品自拍自在线| 日韩一区和二区| 欧美一区二区播放| 6080国产精品一区二区| 欧美视频一区二区在线观看| 91农村精品一区二区在线| 高清久久久久久| 成人国产视频在线观看| 大尺度一区二区| 成人涩涩免费视频| 国产成人综合亚洲网站| 国产成人av一区二区三区在线 | 在线视频国内自拍亚洲视频| 成人高清免费观看| thepron国产精品| 波多野结衣在线一区| 不卡的av网站| 色久优优欧美色久优优| 日本丰满少妇一区二区三区| 在线观看三级视频欧美| 欧美三级日韩在线| 欧美一区二区二区| 精品欧美乱码久久久久久1区2区| 欧美精品一区二区三区蜜桃| 久久久国产精品麻豆| 国产精品网站在线播放| |精品福利一区二区三区| 亚洲免费观看视频| 午夜亚洲国产au精品一区二区| 日韩二区在线观看| 久久国产精品一区二区| 国产大片一区二区| 91福利在线观看| 欧美一区二区视频在线观看| 26uuu亚洲综合色| 国产精品嫩草影院com| 亚洲精品高清在线观看| 日韩 欧美一区二区三区| 国模少妇一区二区三区| 91在线码无精品| 7777女厕盗摄久久久| 国产欧美一区二区三区鸳鸯浴| 国产精品大尺度| 男人的天堂久久精品| 国产成人av电影在线观看| 在线免费观看日韩欧美| 精品久久久影院| 亚洲精品乱码久久久久久久久 | 欧美韩国日本综合| 亚洲一区二区三区自拍| 国产一区二区三区久久久| 日本伦理一区二区| 久久伊人蜜桃av一区二区| 亚洲午夜一区二区三区| 国产成人av一区二区| 欧美肥胖老妇做爰| 亚洲日本在线a| 国产乱人伦精品一区二区在线观看| 色婷婷精品久久二区二区蜜臂av| 欧美成人一区二区三区在线观看| 亚洲三级免费观看| 国产一区二区女| 欧美一区三区四区| 一区二区三区精品视频|