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

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

?? syslib.c

?? 三星官方基于VXWORKS的S3C2510的BSP
?? C
?? 第 1 頁 / 共 2 頁
字號:
*
* 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_SNDS_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 (p[0] == 0xE3A00002 && p[2] == 0x79706F43)
	pRom = (FUNCPTR)(ROM_TEXT_ADRS + 4);	/* warm boot address */
    else
	pRom = (FUNCPTR)ROM_TEXT_ADRS;		/* start of ROM */

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

    pEnd = endFindByName ("secEnd", 0);

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

#if (CPU == ARM710A)
    VM_ENABLE(FALSE);	/* disable the MMU, D-cache and write-buffer */
#endif

    (*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;
    }

/******************************************************************************
*
* sysLedsReadWrite - read/write the state of the LEDs on the board
*
* This routine can be used to read and write the state of the four LEDs
* on the board. The current state is ANDed and EORed with the supplied
* parameters. Bits 0..3 control LEDs 1..4. A 1 switches the LED on; a 0 off.
*
* Assume that LK9 is out, so BIDEN is high.
*
* RETURNS: previous state of LEDs.
*/

int sysLedsReadWrite
    (
    int and,
    int eor
    )
    {
    static UINT8 current = 0;
    int		oldLevel, previous;
    UINT8 *	ppbase = (UINT8 *)PARALLEL_BASE_ADR;

    oldLevel = intLock();

    ppbase[8] = 0;              /* set output mode */
    previous = current;
    current = (current & and) ^ eor;
    ppbase[0] = current << 4;	/* write to Port Register b4..7*/

    intUnlock(oldLevel);
    return previous;
    }

/******************************************************************************
*
* 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.
*
* NOTE: This routine has no effect, since there is no non-volatile RAM.
*
* RETURNS: ERROR, always.
*
* 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 */
    )
    {
	sndsIICRead (EEPROM_SLAVE_ADDR, EEPROM_BOOTLINE_ADDR, string, strLen);
	return OK;
    }

/*******************************************************************************
*
* sysNvRamSet - write to non-volatile RAM
*
* This routine copies a specified string into non-volatile RAM.
*
* NOTE: This routine has no effect, since there is no non-volatile RAM.
*
* RETURNS: ERROR, always.
*
* 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         */
    )
    {
    sndsIICWrite(EEPROM_SLAVE_ADDR, EEPROM_BOOTLINE_ADDR, string, strLen);
	return OK;
    }

#ifdef INCLUDE_FLASH
/******************************************************************************
*
* 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 INCLUDE_CACHE_SUPPORT
void sndsCacheEnable
	( 
	int cachesize
	)
	{
	UINT32	result;
	SNDS_CTRL_REG_READ(SNDS_SYSCFG,result);
	switch(cachesize)
		{
		case SNDS_CACHE_4K:
			sndsCacheFlush();
			SNDS_CTRL_REG_WRITE(SNDS_SYSCFG, (result & ~SNDS_CACHE_MODE));
			SNDS_CTRL_REG_WRITE(SNDS_SYSCFG, (result|SNDS_WRITE_BUFF|SNDS_CACHE_ENABLE));
			break;
		
		case SNDS_CACHE_8K:  		
			sndsCacheFlush();
			SNDS_CTRL_REG_WRITE(SNDS_SYSCFG, (result & ~SNDS_CACHE_MODE));
			SNDS_CTRL_REG_WRITE(SNDS_SYSCFG, (result|SNDS_WRITE_BUFF|SNDS_CACHE_ENABLE|SNDS_CACHE_8K));
			break;
		default:
			break;
		}
	}


void sndsCacheDisable(void)
	{
	UINT32 result;
	SNDS_CTRL_REG_READ(SNDS_SYSCFG, result);
	SNDS_CTRL_REG_WRITE(SNDS_SYSCFG, (result & ~(SNDS_CACHE_ENABLE|SNDS_WRITE_BUFF)));
	}


void sndsCacheFlush(void)
	{
	int i;
	UINT32 *tagram;
	tagram = (UINT32 *)SNDS_TAGRAM;
	sndsCacheDisable();
	for(i=0; i < 256; i++) 
		{
		*tagram = 0x00000000; 
		tagram += 1;
		}

	}

#endif	/* INCLUDE_CACHE_SUPPORT */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www.欧美.com| 日韩av一级片| 色综合一个色综合| 一区二区三区波多野结衣在线观看| 成人ar影院免费观看视频| 日韩理论电影院| 欧美日韩亚州综合| 老色鬼精品视频在线观看播放| 精品国产1区二区| 成人精品小蝌蚪| 一区二区三区在线播放| 欧美高清一级片在线| 国产一区二区不卡| 亚洲欧洲美洲综合色网| 欧美午夜影院一区| 韩国精品久久久| 中文字幕一区免费在线观看| 欧美午夜片在线观看| 韩国理伦片一区二区三区在线播放| 亚洲色大成网站www久久九九| 一本色道综合亚洲| 看电视剧不卡顿的网站| 最新日韩av在线| 欧美一区二区三区思思人| 国产**成人网毛片九色 | 波多野结衣中文字幕一区二区三区 | 欧美日韩一区二区三区免费看| 日本欧美在线观看| 国产精品女上位| 欧美伊人精品成人久久综合97 | 亚洲一区二区三区小说| 久久婷婷久久一区二区三区| 9人人澡人人爽人人精品| 欧美a级理论片| 亚洲精品免费在线播放| 日韩一级成人av| 一本色道久久综合精品竹菊| 毛片基地黄久久久久久天堂| 亚洲男人天堂av| 久久久精品中文字幕麻豆发布| 欧美亚洲免费在线一区| 成人成人成人在线视频| 久久99精品久久久久| 夜夜精品视频一区二区 | 亚洲第一在线综合网站| 国产欧美视频在线观看| 91精品啪在线观看国产60岁| 91网址在线看| 成人激情综合网站| 久久99久久99| 亚洲国产精品自拍| 亚洲视频狠狠干| 国产精品视频看| 2021国产精品久久精品| 777xxx欧美| 欧美日韩三级在线| 一本一道综合狠狠老| 成人免费av网站| 国产丶欧美丶日本不卡视频| 看电视剧不卡顿的网站| 青青草国产成人av片免费| 亚洲自拍与偷拍| 亚洲图片激情小说| 亚洲视频免费看| 亚洲色图.com| 亚洲乱码国产乱码精品精小说| 中文字幕国产一区二区| 久久久久国产一区二区三区四区| 欧美电影免费观看高清完整版| 欧美大片国产精品| 欧美一区永久视频免费观看| 精品视频在线免费观看| 欧洲一区二区av| 日本电影欧美片| 欧美三区免费完整视频在线观看| 色综合欧美在线| 91成人免费电影| 欧美日韩一区二区在线观看 | 日韩一区二区麻豆国产| 欧美日韩1区2区| 欧美一区二区美女| 欧美大白屁股肥臀xxxxxx| 欧美sm美女调教| 久久日韩粉嫩一区二区三区| 久久嫩草精品久久久精品一| 国产欧美精品一区二区色综合| 久久久国产精华| 欧美激情一区二区三区四区| 国产精品天天摸av网| 最新久久zyz资源站| 亚洲综合精品久久| 蜜臀av性久久久久蜜臀aⅴ| 男男视频亚洲欧美| 国产一区在线视频| 99久精品国产| 91超碰这里只有精品国产| 日韩写真欧美这视频| 国产欧美精品日韩区二区麻豆天美| 国产欧美精品一区二区色综合| 亚洲欧美激情插| 石原莉奈在线亚洲二区| 国产剧情一区二区三区| 91免费视频大全| 欧美一区二区三区公司| 中文字幕国产一区| 亚洲一区欧美一区| 黄色资源网久久资源365| 成人国产视频在线观看| 欧美美女一区二区三区| 久久久久久久久伊人| 亚洲精品国产精品乱码不99 | 欧美色网一区二区| 日韩欧美不卡一区| 亚洲人成影院在线观看| 青青草一区二区三区| 波多野结衣91| 日韩欧美国产综合一区 | 亚洲国产成人av网| 国产东北露脸精品视频| 欧美日本不卡视频| 国产精品免费看片| 日本不卡一区二区三区| caoporm超碰国产精品| 欧美一区二区三区啪啪| 亚洲视频一区二区在线| 久色婷婷小香蕉久久| 一本一道久久a久久精品| 久久色中文字幕| 天天av天天翘天天综合网色鬼国产| 91影院在线观看| 日韩午夜电影在线观看| 亚洲免费观看在线观看| 国产一区二区成人久久免费影院 | 欧美xxxxx牲另类人与| 亚洲一区欧美一区| 99久久精品国产一区| 26uuu另类欧美亚洲曰本| 日欧美一区二区| 日本久久电影网| 国产精品久久久久aaaa| 国产一区二区免费视频| 日韩精品一区二区三区在线播放| 亚洲国产cao| 在线免费观看一区| 日韩一区欧美一区| 成人av在线资源网站| 久久综合精品国产一区二区三区| 五月综合激情婷婷六月色窝| 91国产福利在线| 亚洲色图清纯唯美| 91婷婷韩国欧美一区二区| 国产日韩欧美麻豆| 风流少妇一区二区| 欧美国产成人在线| 欧美第一区第二区| 91福利国产精品| 久久99精品网久久| 国产精品美女久久久久久久久久久| 欧美日韩精品一区二区天天拍小说| 亚洲人快播电影网| 欧美一卡2卡三卡4卡5免费| 亚洲专区一二三| 久久久久国产精品厨房| 在线观看欧美精品| 国产婷婷色一区二区三区四区| 亚洲蜜臀av乱码久久精品| 从欧美一区二区三区| 久久综合久色欧美综合狠狠| 久久精品久久99精品久久| 欧美高清你懂得| 蜜桃精品在线观看| 日韩欧美不卡在线观看视频| 激情六月婷婷综合| 国产午夜亚洲精品不卡| 成人国产精品免费观看视频| 国产精品久久久爽爽爽麻豆色哟哟| 粉嫩aⅴ一区二区三区四区五区| 中文字幕欧美日本乱码一线二线| 成人污污视频在线观看| 综合网在线视频| 欧美色欧美亚洲另类二区| 日韩电影在线观看一区| 欧美一区二区视频在线观看2020 | 午夜免费欧美电影| 欧美高清hd18日本| 国内精品伊人久久久久av影院| 久久精品人人做人人综合| 91在线看国产| 三级久久三级久久| 国产午夜亚洲精品不卡| 色婷婷av久久久久久久| 三级久久三级久久| 国产女人18水真多18精品一级做| av色综合久久天堂av综合| 亚洲午夜激情av| www日韩大片| 色狠狠色噜噜噜综合网| 蜜桃传媒麻豆第一区在线观看| 国产日韩欧美不卡| 欧美私人免费视频|