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

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

?? syslib.c

?? tornado開發 三星s3c44b0x開發板 bsp
?? C
?? 第 1 頁 / 共 3 頁
字號:
*/char *sysModel (void)    {#if (_BYTE_ORDER == _LITTLE_ENDIAN)#if   (CPU == ARMARCH4)    /*return    "wrSbcArm7 - ARM7TDMI (ARM)";*/	/* Amine: deleted and added */	return    "S3C44B0X - ARM7TDMI (ARM,not Thumb) Little Endian";		#elif (CPU == ARMARCH4_T)    return    "wrSbcArm7 - ARM7TDMI (Thumb)";#else#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)    {	/* Amine: added */	portInit();    rtl8019Init();    s3cExcVecSet();	    /* install the IRQ/SVC interrupt stack splitting routine */    _func_armIntStackSplit = sysIntStackSplit;#ifdef INCLUDE_LCD	/* Amine: 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	/* Amine: 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();*/	/* Amine: 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 */	#if(BOARD_TYPE == BOARD_ARMEPS)    (void)intConnect (INUM_TO_IVEC (IVEC_TO_INUM(INT_LVL_TIMER5)), sysClkInt, 0);	#else	(void)intConnect (INUM_TO_IVEC (INT_VEC_TIMER0), sysClkInt, 0);	#endif    (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           */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人黄色小视频| 久久美女艺术照精彩视频福利播放| 丰满少妇在线播放bd日韩电影| 美女视频一区二区| 九九久久精品视频| 狠狠色综合日日| 国产精品亚洲综合一区在线观看| 国产综合色产在线精品 | 懂色av一区二区三区免费观看 | 色综合天天狠狠| 99久久777色| 日本高清视频一区二区| 色综合天天做天天爱| 欧美性一二三区| 欧美电影一区二区三区| 8x8x8国产精品| 欧美va亚洲va| 国产欧美精品一区aⅴ影院 | 亚洲午夜电影在线| 午夜成人在线视频| 久久99久久久久| 国产成人午夜精品5599 | 久久久午夜精品理论片中文字幕| 精品国产百合女同互慰| 久久久国产精品午夜一区ai换脸| 国产精品久久久久久久蜜臀| 亚洲精品免费电影| 无吗不卡中文字幕| 国产伦精品一区二区三区免费迷| 99久久婷婷国产综合精品电影| 欧洲人成人精品| 日韩精品专区在线影院重磅| 国产欧美精品一区二区色综合 | 一区二区三区四区亚洲| 午夜精品久久久久久久| 精品一区二区三区在线播放| 成人精品在线视频观看| 欧洲国产伦久久久久久久| 日韩三级.com| ㊣最新国产の精品bt伙计久久| 亚洲图片欧美一区| 国产很黄免费观看久久| 93久久精品日日躁夜夜躁欧美| 欧美精选午夜久久久乱码6080| 久久久影视传媒| 一区二区三区蜜桃网| 精品在线亚洲视频| 在线看一区二区| 国产三级精品视频| 亚洲午夜电影在线| 床上的激情91.| 4hu四虎永久在线影院成人| 国产丝袜美腿一区二区三区| 午夜亚洲国产au精品一区二区| 国产+成+人+亚洲欧洲自线| 欧美日韩五月天| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 久久综合视频网| 亚洲一卡二卡三卡四卡五卡| 国产呦萝稀缺另类资源| 欧美在线视频不卡| 国产精品三级电影| 日本欧美韩国一区三区| 99riav久久精品riav| 精品久久久久久久一区二区蜜臀| 亚洲午夜在线视频| www.欧美日韩| 久久精品一区二区三区四区| 午夜电影久久久| 在线日韩av片| 亚洲四区在线观看| 成人性生交大片免费| 日韩精品一区国产麻豆| 亚洲国产精品一区二区尤物区| 菠萝蜜视频在线观看一区| 日韩免费在线观看| 日韩av在线免费观看不卡| 日本高清成人免费播放| 国产精品区一区二区三| 国产一区二区三区在线观看精品| 欧美绝品在线观看成人午夜影视| 亚洲视频资源在线| 成人午夜视频网站| 亚洲国产精品精华液ab| 久久97超碰国产精品超碰| 欧美另类z0zxhd电影| 一区二区免费在线播放| 99re成人精品视频| 国产精品免费丝袜| 国产69精品久久99不卡| 国产欧美一区二区三区网站| 精品一区二区三区不卡| 欧美一区二区三区视频免费播放 | 色老头久久综合| 中文字幕欧美一| 成人av一区二区三区| 欧美国产激情一区二区三区蜜月| 国产一区二区在线电影| 欧美极品美女视频| 国产露脸91国语对白| 精品电影一区二区| 精品一二三四在线| 久久久久久久久久看片| 国产成人免费视频一区| 久久久久久影视| 国产不卡视频在线播放| 国产精品毛片高清在线完整版| 国产精品99久久久久久宅男| 久久久久97国产精华液好用吗| 紧缚奴在线一区二区三区| 欧美成va人片在线观看| 国内精品免费**视频| 欧美国产日产图区| 9l国产精品久久久久麻豆| 亚洲三级理论片| 欧美午夜电影一区| 香蕉加勒比综合久久| 666欧美在线视频| 麻豆精品在线播放| 日本一区二区三区在线不卡| 粗大黑人巨茎大战欧美成人| 亚洲欧美日韩一区| 欧美日韩国产123区| 久久精品国产久精国产| 欧美激情一区在线| 99国产精品久久久久久久久久久 | 在线观看日韩毛片| 日韩主播视频在线| 久久久国产一区二区三区四区小说| 成人性生交大片免费看中文网站| 亚洲精品成人少妇| 欧美精品久久久久久久久老牛影院| 老司机午夜精品| 亚洲欧洲日本在线| 欧美日韩国产小视频| 国内精品久久久久影院色| 专区另类欧美日韩| 91麻豆精品久久久久蜜臀| 国产福利精品一区| 一个色综合av| 欧美精品一区二| 一本久久精品一区二区| 麻豆精品新av中文字幕| 国产精品久久久久久户外露出| 91豆麻精品91久久久久久| 蜜桃av一区二区| 亚洲日本电影在线| 日韩免费看网站| 91亚洲精品乱码久久久久久蜜桃 | 欧美一级黄色片| www.成人在线| 另类调教123区| 亚洲色图在线看| 精品国产成人系列| 精品视频在线免费观看| 国产一区二区视频在线播放| 一区二区在线观看不卡| 精品成人佐山爱一区二区| 91免费精品国自产拍在线不卡| 日韩av中文字幕一区二区三区| 国产精品传媒视频| 日韩欧美国产三级| 欧美午夜影院一区| av在线免费不卡| 国模无码大尺度一区二区三区| 亚洲电影视频在线| 国产精品美女久久福利网站| 精品欧美黑人一区二区三区| 91成人网在线| 99久久99久久综合| 国产一区二区三区观看| 日本欧美大码aⅴ在线播放| 国产精品久久久久久久久快鸭 | 91精品国产乱码| 91麻豆视频网站| 成人小视频在线观看| 麻豆成人免费电影| 亚洲电影第三页| 一区二区三区在线观看动漫| 亚洲国产精品t66y| 2023国产一二三区日本精品2022| 欧美日韩一本到| 日本韩国欧美在线| 91日韩一区二区三区| 高清免费成人av| 国产精品资源在线| 美女精品一区二区| 同产精品九九九| 亚洲猫色日本管| 日韩一区中文字幕| 国产精品丝袜91| 日本一区二区三区四区| 欧美成人性福生活免费看| 777久久久精品| 欧美日韩国产欧美日美国产精品| 色婷婷国产精品久久包臀| av一区二区久久| 97精品视频在线观看自产线路二| 国产精品一区在线| 国产一区二区三区视频在线播放|