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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? syslib.c

?? 三星公司S3C4510B的VXWORKS操作系統(tǒng)下的BSP
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
/* sysLib.c - Samsung SBC ARM7 system-dependent routines *//* Copyright 1984-2002 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01k,26mar02,m_h  rename glbEnetAddr to sysSngks32cMacAddr01j,17jan02,m_h  fix cache issues and diab build warnings01i,27sep01,m_h  base MAC address on user DIP setting, Big Endian Support01h,23jul01,m_h  builds in UNIX01g,17jul01,g_h  add visionWARE 2.00 support01f,11jul01,g_h  disable cache in sysToMonitor()01e,10jul01,g_h  add INCLUDE_LCD & INCLUDE_LED & INCLUDE_NETWORK macros01d,09jul01,g_h  add #include "sbcCksum.c" instead of the makefile01c,26apr01,m_h  convert tabs to spaces for readability01b,25apr01,m_h  add comments to cache functions01a,12apr01,m_h  created from snds100 template.*//*DESCRIPTIONThis library provides board-specific routines for the WindRiver SBC ARM7Ver 1.0 Development Board BSP for the Samsung KS32C chip.It #includes the following chip drivers:    nullVme.c         -     dummy VMEbus routines    sngks32cTimer.c   -     SNGKS32CARM7 timer driver    sngks32cIntrCtl.c -     SNGKS32CARM7 interrupt controller driver    nullNvRam.c       -     dummy NVRAM routinesIt #includes the following BSP files:    sysSerial.c       -     serial device initialization routines    sysEnd.c          -     END network driver support routines.INCLUDE FILES: sysLib.h string.h intLib.h taskLib.h vxLib.h muxLib.hSEE ALSO:<Configuration><ARM Architecture Reference Manual>,<Samsung KS32C50100 Microcontroller User's Manual>,<Samsung KS32C5000(A)/50100 Microcontroller Application Notes>*//* includes */#include "vxWorks.h"#include "config.h"#include "sysLib.h"#include "string.h"#include "intLib.h"#include "taskLib.h"#include "vxLib.h"#include "muxLib.h"#include "cacheLib.h"#include "memLib.h"#include "wrSbcArm7.h"/* imports */IMPORT char end;                            /* end of system, created by ld */IMPORT VOIDFUNCPTR _func_armIntStackSplit;  /* ptr to fn to split stack *//* globals */int    sysBus         = BUS;            /* system bus type (VME_BUS, etc) */int    sysCpu         = CPU;            /* system cpu type */char * sysBootLine    = BOOT_LINE_ADRS; /* address of boot line */char * sysExcMsg      = EXC_MSG_ADRS;   /* catastrophic message area */int    sysProcNum;                      /* processor number of this cpu */int    sysFlags;                        /* boot flags */char   sysBootHost [BOOT_FIELD_LEN];    /* name of host from which we booted */char   sysBootFile [BOOT_FIELD_LEN];    /* name of file from which we booted */CACHE_FUNCS   sngks32cCacheFuncs;unsigned char sysSngks32cMacAddr[] = ETHERNET_MAC_ADRS;/* locals */#if SNGKS32C_INTNUMLEVELS != 21#   error sbcIntLvlMask is wrong size for number of levels#endif/* defines */    /* externals */IMPORT void   sngks32cIntDevInit (void);IMPORT void   sysIntStackSplit (char *, long);/*local defines*/#ifndef SBCARM7_CTRL_REG_READ#   define SBCARM7_CTRL_REG_READ(x,result) \        ((result) = *(volatile UINT32 *)(x))#endif    /*SBCARM7_READ*/#ifndef SBCARM7_CTRL_REG_WRITE#   define SBCARM7_CTRL_REG_WRITE(x,data) \        (*((volatile UINT32 *)(x)) = (data))#endif /*SBCARM7_WRITE*//* globals *//* forward LOCAL functions declarations *//* forward declarations */char *    sysPhysMemTop (void);#ifdef INCLUDE_CACHE_SUPPORTSTATUS sngks32cCacheLibInit(CACHE_MODE instMode, CACHE_MODE dataMode);FUNCPTR sysCacheLibInit = sngks32cCacheLibInit;void   sysDebug (char *str);void   sngks32cCacheFlush    (void);  void * sngks32cCacheDmaMalloc(size_t bytes);STATUS sngks32cCacheDmaFree  (void *pBuf);void   sngks32cCacheEnable   (void);void   sngks32cCacheDisable  (void);void * sngks32cPhysToVirtRtn (void *adrs);void * sngks32cVirtToPhysRtn (void *adrs);#endif /*INCLUDE_CACHE_SUPPORT*//* included source files */#ifdef INCLUDE_FLASH#include "flashMem.c"#else /* INCLUDE_FLASH */#include "mem/nullNvRam.c"#endif  /* INCLUDE_FLASH */#include "vme/nullVme.c"#include "sysSerial.c"#include "sngks32cTimer.c"#include "sngks32cIntrCtl.c"#ifdef INCLUDE_NETWORK#ifdef INCLUDE_END#include "sbcCksum.c"#include "sysEnd.c"#endif /* INCLUDE_END */#endif /* INCLUDE_NETWORK */#ifdef INCLUDE_LCD#include "sysLcd.c"#endif /* INCLUDE_LCD */#ifdef INCLUDE_LED#include "sysLed.c"#endif /* INCLUDE_LCD */#ifdef INCLUDE_VWARE_LAUNCH#include "sysVware.c"#endif /* INCLUDE_VWARE_LAUNCH *//******************************************************************************** sysModel - return the model name of the CPU board** This routine returns the model name of the CPU board.* * RETURNS: A pointer to a string identifying the board and CPU.*/char *sysModel (void)    {#if (_BYTE_ORDER == _LITTLE_ENDIAN)#if   (CPU == ARMARCH4)    return    "wrSbcArm7 - ARM7TDMI (ARM)";#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)    {    /* install the IRQ/SVC interrupt stack splitting routine */    _func_armIntStackSplit = sysIntStackSplit;    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 */    /* 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();#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 (SNGKS32C_INTNUMLEVELS, SNGKS32C_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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区在线观看| 久久品道一品道久久精品| 99久久精品国产一区二区三区| 久久国产免费看| 奇米精品一区二区三区四区| 午夜国产不卡在线观看视频| 亚洲高清视频中文字幕| 香蕉影视欧美成人| 婷婷综合五月天| 青青青爽久久午夜综合久久午夜| 婷婷夜色潮精品综合在线| 日产精品久久久久久久性色| 日韩激情中文字幕| 91黄色免费看| 欧洲一区在线电影| 欧美日韩国产免费一区二区| 3atv一区二区三区| 日韩免费电影一区| 久久综合狠狠综合久久综合88 | 日韩欧美国产一区二区在线播放| 制服丝袜一区二区三区| 日韩欧美国产一区二区三区| 精品欧美一区二区在线观看| 久久久99精品久久| 中文字幕一区二| 一区二区三区欧美在线观看| 天天爽夜夜爽夜夜爽精品视频| 青娱乐精品视频在线| 国产乱人伦偷精品视频免下载 | 久久综合国产精品| 国产欧美日韩在线| 亚洲激情男女视频| 日韩精品久久久久久| 国产一区二区在线视频| 99这里只有久久精品视频| 色婷婷综合久色| 91精品国产免费| 国产无一区二区| 亚洲精品第1页| 美腿丝袜亚洲色图| 高清在线不卡av| 欧美午夜一区二区三区| 欧美电视剧在线看免费| 国产精品国产自产拍高清av| 午夜视频在线观看一区| 国产精品中文字幕日韩精品| 色婷婷av一区二区| 精品久久久久久久一区二区蜜臀| 亚洲欧洲精品一区二区精品久久久 | 中文字幕永久在线不卡| 日韩一区精品字幕| 成人一区二区三区| 欧美精品在线一区二区| 美女网站色91| av一区二区久久| 欧美一区二区三区视频免费播放| 欧美国产一区二区在线观看| 午夜在线成人av| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 欧美综合色免费| 久久亚洲欧美国产精品乐播| 亚洲综合免费观看高清完整版在线| 久久精品国产成人一区二区三区| 99r国产精品| 亚洲精品一线二线三线| 亚洲高清免费在线| 成人综合在线视频| 欧美一级欧美三级在线观看| 亚洲卡通动漫在线| 国产精品一区二区免费不卡| 欧美美女直播网站| 亚洲色图欧美激情| 国产乱对白刺激视频不卡| 欧美日韩国产系列| 亚洲伦理在线精品| 国产电影精品久久禁18| 欧美一二区视频| 亚洲一二三四在线观看| 成人av在线影院| 久久色视频免费观看| 日韩不卡手机在线v区| 日本高清不卡一区| 国产精品久久久久婷婷| 国产一区二区三区免费播放| 51精品国自产在线| 亚洲一卡二卡三卡四卡五卡| bt欧美亚洲午夜电影天堂| 国产色91在线| 国产乱码精品一区二区三区五月婷| 91精品国产乱码久久蜜臀| 亚洲一区二区黄色| 色噜噜狠狠一区二区三区果冻| 国产精品私人影院| 国产99久久久国产精品免费看 | 中文字幕制服丝袜一区二区三区 | 国内精品久久久久影院色| 欧美福利视频导航| 午夜伊人狠狠久久| 欧洲一区二区三区在线| 亚洲综合色丁香婷婷六月图片| 99v久久综合狠狠综合久久| 国产精品欧美极品| 成人国产电影网| 中文字幕+乱码+中文字幕一区| 国产精品影视天天线| 久久精品综合网| 国产成人精品影视| 久久嫩草精品久久久久| 黄色日韩网站视频| 久久精品一区蜜桃臀影院| 国产剧情一区在线| 国产欧美日韩另类一区| 成人精品免费视频| 中文字幕在线不卡| 色拍拍在线精品视频8848| 亚洲综合成人网| 欧美日韩精品一区二区| 日本 国产 欧美色综合| 欧美一区二区三区免费在线看| 麻豆精品在线视频| 久久中文娱乐网| k8久久久一区二区三区| 亚洲精品大片www| 欧美色图片你懂的| 免费国产亚洲视频| 久久久综合九色合综国产精品| 成人午夜av影视| 一区二区欧美精品| 欧美一区二区三区四区五区 | 激情深爱一区二区| 久久久久九九视频| av不卡免费在线观看| 一区二区三区在线观看国产| 欧美日韩国产天堂| 精品亚洲国产成人av制服丝袜| 欧美精彩视频一区二区三区| 91丨九色丨国产丨porny| 亚洲高清视频中文字幕| 精品国产sm最大网站| 不卡一区中文字幕| 五月婷婷久久综合| 国产亚洲福利社区一区| 色婷婷综合久久| 奇米在线7777在线精品| 国产人妖乱国产精品人妖| 在线视频观看一区| 久久国产夜色精品鲁鲁99| 国产精品情趣视频| 在线91免费看| 国产99久久精品| 性做久久久久久免费观看| 久久久亚洲综合| 欧美日韩中文另类| 国精产品一区一区三区mba桃花 | 欧美在线免费播放| 美女www一区二区| 成人免费小视频| 91麻豆精品国产91| av亚洲精华国产精华精华| 视频在线观看91| 国产精品久久久久一区| 欧美一区二区啪啪| 91视频观看免费| 国内久久婷婷综合| 亚洲五码中文字幕| 亚洲国产精品黑人久久久| 91精品久久久久久久99蜜桃| av网站免费线看精品| 久久不见久久见免费视频7| **欧美大码日韩| 久久综合网色—综合色88| 欧美日韩综合在线免费观看| 国产高清不卡二三区| 日本伊人色综合网| 一区二区免费在线| 国产精品三级久久久久三级| 日韩丝袜美女视频| 欧美日韩卡一卡二| 99久久免费国产| 国产盗摄精品一区二区三区在线| 一本到不卡免费一区二区| 国内外成人在线| 青青草97国产精品免费观看| 一区二区三区欧美在线观看| 国产精品视频一二三区 | 日韩国产精品久久久| 亚洲人午夜精品天堂一二香蕉| 精品国产免费一区二区三区香蕉 | 亚洲一区二区三区在线看| 国产精品麻豆视频| 久久久五月婷婷| 欧美一区二区三区四区五区| 欧美日韩一本到| 欧美在线观看一二区| 91尤物视频在线观看| 成人性生交大合| 成人午夜伦理影院| 国产大陆精品国产| 国产成人啪免费观看软件| 国产在线精品免费|