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

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

?? retarget.c

?? ucos的源代碼程序
?? C
字號:
/*
** Copyright (C) ARM Limited, 2001. All rights reserved.
*/


/*
** This implements a 'retarget' layer for low-level IO.  Typically, this
** would contain your own target-dependent implementations of fputc(),
** ferror(), etc.
** 
** This example provides implementations of fputc(), ferror(),
** _sys_exit(), _ttywrch() and __user_initial_stackheap().
**
** Here, semihosting SWIs are used to display text onto the console 
** of the host debugger.  This mechanism is portable across ARMulator,
** Angel, Multi-ICE and EmbeddedICE.
**
** Alternatively, to output characters from the serial port of an 
** ARM Integrator Board (see serial.c), use:
**
**     #define USE_SERIAL_PORT
**
** or compile with 
**
**     -DUSE_SERIAL_PORT
*/

#include <stdio.h>
#include <string.h>
#include <rt_misc.h>
#include <time.h>
#include "../inc/sys/lib.h"

#undef DEBUG
//#define DEBUG
#ifdef DEBUG
#define DPRINTF	printf
#else
#define DPRINTF(...)
#endif

//#if (USE_YAFFS==1)

struct __FILE { int handle;   /* Add whatever you need here */};

//#define yaffs_Map2File(nfile)		((FILE*)(nfile+1))
//#define File_Map2yaffs(cfile)		((int)(cfile)-1)

//#else

//#endif

FILE __stdin, __stdout, __stderr;


extern unsigned int bottom_of_heap;     /* defined in heap.s */

int fputc(int ch, FILE *f)
{
	/* Place your implementation of fputc here     */
	/* e.g. write a character to a UART, or to the */
	/* debugger console with SWI WriteC            */
	if(f == &__stdout)	//for console out put e.g. printf
		CONSOLE_PUTC(ch);

	return ch;
}


int ferror(FILE *f)
{   /* Your implementation of ferror */
    return EOF;
}


void _sys_exit(int return_code)
{
	for(;;);
}


int __raise(int signal, int argument)//void _ttywrch(int ch)
{
	return 0;
}


__value_in_regs struct __initial_stackheap __user_initial_stackheap(
        unsigned R0, unsigned SP, unsigned R2, unsigned SL)
{
    struct __initial_stackheap config;
    
    config.heap_base = (unsigned int)&bottom_of_heap; // defined in heap.s
                                                      // placed by scatterfile   
    config.stack_base = SP;   // inherit SP from the execution environment

    return config;
}

/*
Below is an equivalent example assembler version of __user_initial_stackheap.

It will be entered with the value of the stackpointer in r1 (as set in init.s), 
this does not need to be changed and so can be passed unmodified out of the 
function. 

    IMPORT bottom_of_heap
    EXPORT __user_initial_stackheap

__user_initial_stackheap    
    LDR   r0,=bottom_of_heap
    MOV   pc,lr
*/

/*int fclose(FILE * stream)
{
#if (USE_YAFFS==1)
	yaffs_close(File_Map2yaffs(stream));
	return 0;
#else
	CloseOSFile(stream);
	return 0;
#endif
}

FILE *fopen(const char * filename, const char * mode)
{

#if (USE_YAFFS==1)
#define FILE_FLAG_W		1
#define FILE_FLAG_R		2
#define FILE_FLAG_A		4
#define FILE_FLAG_PLUS	8

	const static unsigned int fileoflagTAB[]={	0xff, // 0	xx
		O_WRONLY|O_CREAT|O_TRUNC, // 1->"w"
		O_RDONLY, // 2->"r"
		0xff, // 3->"wr"	xx
		O_WRONLY|O_CREAT|O_APPEND, // 4->"a"
		0xff, // 5->"aw"	xx
		0xff, // 6->"ar"	xx
		0xff, // 7->"awr"	xx
		0xff, // 8->"+"	xx
		O_RDWR|O_CREAT|O_TRUNC, // 9->"w+"
		O_RDWR, // 10->"r+"
		0xff, // 11->"wr+"	xx
		O_RDWR|O_CREAT|O_APPEND, // 12->"a+"
		0xff, // 13->"aw+"	xx
		0xff, // 14->"ar+"	xx
		0xff, // 15->"awr+"	xx
	};

	unsigned int filestatus=0, fileoflag;
	const char *p=mode;
	int ret;
	
	while(*p){
		if(*p=='w')
			filestatus|=FILE_FLAG_W;
		if(*p=='r')
			filestatus|=FILE_FLAG_R;
		if(*p=='a')
			filestatus|=FILE_FLAG_A;
		if(*p=='+')
			filestatus|=FILE_FLAG_PLUS;
		p++;
	}

	fileoflag=fileoflagTAB[filestatus];
	DPRINTF("fopen: %s, Flag: 0x%x\n", filename, fileoflag);

	if(fileoflag==0xff)
		return NULL;

	if((ret=yaffs_open(filename, fileoflag, S_IWRITE|S_IREAD))<0){
		DPRINTF("Open file: %s failed!\n", filename);
		return NULL;
	}
	else{
		DPRINTF("Open file: %s success!\n", filename);
	}
	return yaffs_Map2File(ret);
	
#else	//#if (USE_YAFFS==1)

#ifdef DEBUG
	FILE *ret;
#endif

	//we only support read only mode.
	if(strcmp(mode, "rb")!=0 || mode[0]!='r')
		return NULL;

	DPRINTF("fopen: %s\n", filename);

#ifdef DEBUG
	ret=OpenOSFile(filename , FILEMODE_READ);
	if(ret==NULL)
		DPRINTF("fopen: %s failed\n", filename);
	return ret;
#else
	return OpenOSFile((char*)filename , FILEMODE_READ);
#endif

#endif	//#if (USE_YAFFS==1)
}*/

/*FILE *freopen(const char * filename, const char * mode,
		FILE * stream)
{
	DPRINTF("freopen: %s\n", filename);
	fclose(stream);
	return fopen(filename, mode);
}

int fflush(FILE * stream)
{
	DPRINTF("fflush:\n");

	return 0;
}*/

/*int fseek(FILE * stream, long int offset, int whence)
{
#if (USE_YAFFS==1)
	return yaffs_lseek(File_Map2yaffs(stream), offset, whence);
	
#else
	if(whence==SEEK_CUR)
		offset+=stream->fileCurpos;
	else if(whence==SEEK_END)
		offset+=stream->filesize;

	DPRINTF("seek: 0x%x\n", offset);

	if(SeekOSFile(stream, offset)!=offset){
		DPRINTF("seek: failed");
		return -1;
	}

	return 0;
#endif	//#if (USE_YAFFS==1)
}

FILE *tmpfile(void)
{
	DPRINTF("tmpfile:\n");
	return NULL;
}*/

/*void rewind(FILE * stream)
{
#if (USE_YAFFS==1)
	yaffs_lseek(File_Map2yaffs(stream), 0, SEEK_SET);
#endif
}

int fgetc(FILE * stream)
{
	unsigned char c;

	if(stream == &__stdin)	//for console out put e.g. printf
		return CONSOLE_GETC();


	DPRINTF("fgetc:\n");
	if(fread(&c, 1, 1, stream)!=1)
		return 0;

	return c;
}*/

/*size_t fread(void * ptr,size_t size, size_t nmemb, FILE * stream)
{
	int nbyte=size*nmemb;

	DPRINTF("fread: %d byte", nbyte);
#if (USE_YAFFS==1)
	return yaffs_read(File_Map2yaffs(stream), ptr, nbyte);
#else
	return ReadOSFile(stream, ptr, nbyte);
#endif
}

size_t fwrite(const void * ptr,size_t size, size_t nmemb, FILE * stream)
{
#if (USE_YAFFS==1)
	int nbyte=size*nmemb;

	DPRINTF("fread: %d byte", nbyte);
	return yaffs_write(File_Map2yaffs(stream), ptr, nbyte);
#else
	return 0;
#endif
}*/

/*long int ftell(FILE * stream)
{
	return 0;
}

int ungetc(int c, FILE * stream)
{
	return 0;
}

time_t time(time_t * timer)
{
	return NULL;
}*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品久久一区| 欧美激情综合在线| 国产精品乱码一区二三区小蝌蚪| 成人欧美一区二区三区视频网页| 热久久一区二区| 91视频国产观看| 国产欧美久久久精品影院| 五月婷婷激情综合网| youjizz国产精品| 欧美mv和日韩mv的网站| 亚洲一区日韩精品中文字幕| 粉嫩13p一区二区三区| 91麻豆精品国产91久久久| 一区二区三区在线免费观看 | 91网站在线播放| 精品成人a区在线观看| 亚洲成人免费av| 91免费看视频| 国产精品乱码一区二区三区软件 | 美国十次了思思久久精品导航| 99国产欧美另类久久久精品| 26uuu亚洲| 免费成人在线播放| 欧美日韩国产高清一区二区 | 国产精品视频观看| 国产在线看一区| 日韩欧美中文一区二区| 五月婷婷久久综合| 欧美日韩二区三区| 婷婷综合另类小说色区| 欧美视频第二页| 天天色综合成人网| 欧美二区在线观看| 日本网站在线观看一区二区三区| 欧美日韩aaaaa| 日本成人在线电影网| 91精品国产麻豆国产自产在线 | 亚洲黄色片在线观看| 99久久伊人精品| 亚洲美女在线一区| 欧美猛男男办公室激情| 日本少妇一区二区| 精品精品欲导航| 国产精品一区在线观看乱码 | av电影在线观看一区| 日韩码欧中文字| 91啦中文在线观看| 久久综合色一综合色88| 国产最新精品免费| 久久久99精品免费观看| 国产成人av自拍| 久久精品一区二区三区不卡牛牛| 精品无人区卡一卡二卡三乱码免费卡| 欧美日韩国产区一| 青青青爽久久午夜综合久久午夜| 在线观看国产一区二区| 亚洲主播在线观看| 在线电影国产精品| 久久不见久久见免费视频7| 日韩免费视频一区| 国产美女在线观看一区| 久久精品欧美一区二区三区不卡| 国产福利不卡视频| 国产精品久久久久久久午夜片| 国产不卡视频在线观看| 中文字幕在线视频一区| 成人动漫精品一区二区| 亚洲综合激情另类小说区| 欧美日韩中文国产| 美国毛片一区二区三区| 国产欧美日本一区视频| 99久久综合精品| 亚洲国产欧美另类丝袜| 91精品国产综合久久久久久久久久| 久久99精品久久久| 亚洲天堂福利av| yourporn久久国产精品| 久久精品国产秦先生| 中文字幕欧美激情一区| 色婷婷久久久综合中文字幕 | 日韩av一区二区在线影视| 日韩欧美成人午夜| 成人精品一区二区三区四区| 中日韩免费视频中文字幕| 欧美美女黄视频| 国产成人精品一区二区三区四区| 亚洲欧美福利一区二区| 在线综合+亚洲+欧美中文字幕| 精品一区二区在线播放| 日韩毛片在线免费观看| 日韩欧美www| 色噜噜狠狠色综合中国| 国产精品一二三四五| 亚洲国产va精品久久久不卡综合| 欧美一区二区三区性视频| 午夜精品视频在线观看| 亚洲精品中文在线观看| 精品国产青草久久久久福利| 一本色道亚洲精品aⅴ| 久久99国产精品久久| 亚洲三级电影网站| 欧美一区二区三区思思人| 99精品桃花视频在线观看| 精品一区二区三区影院在线午夜| 亚洲一区二区三区免费视频| 精品国产一区二区亚洲人成毛片| 欧美一级黄色片| 欧美系列一区二区| 不卡视频一二三四| 九色|91porny| 蜜臀99久久精品久久久久久软件| 亚洲精品免费在线观看| 中文字幕久久午夜不卡| 日韩欧美中文一区二区| 色婷婷激情综合| 欧洲精品在线观看| 成人黄色小视频在线观看| 精品亚洲porn| 久久狠狠亚洲综合| 美女脱光内衣内裤视频久久影院| 亚洲曰韩产成在线| 亚洲欧美日韩精品久久久久| 中文字幕欧美国产| 26uuu精品一区二区| 久久精品视频在线免费观看| 日韩欧美卡一卡二| 欧美日韩精品一区二区三区四区| 91丨九色porny丨蝌蚪| 成人av小说网| av不卡在线观看| 91丝袜国产在线播放| 不卡av在线网| 粉嫩绯色av一区二区在线观看| 99国产精品久久久久| 不卡的电视剧免费网站有什么| 成人亚洲一区二区一| 成人午夜激情视频| av电影在线不卡| 91视频在线观看| 色婷婷精品久久二区二区蜜臂av| 色丁香久综合在线久综合在线观看| 成人免费毛片嘿嘿连载视频| 国产成人精品免费| 99久久久精品| 欧美性一二三区| 制服.丝袜.亚洲.另类.中文| 欧美一区二区视频观看视频| 日韩精品在线一区| 国产喂奶挤奶一区二区三区| 国产精品久久久久久久久快鸭 | 久久日韩精品一区二区五区| 久久综合久久综合亚洲| 亚洲国产精品av| 亚洲免费电影在线| 五月天网站亚洲| 精品一区二区免费看| 国产成人精品免费在线| 国产成人99久久亚洲综合精品| 日本精品视频一区二区| 91精品国产综合久久久久| ww久久中文字幕| 亚洲欧洲精品一区二区精品久久久 | 91色在线porny| 欧美日韩一区久久| 日韩免费电影一区| 中文字幕一区二区视频| 亚洲va韩国va欧美va| 九九精品视频在线看| 99久久婷婷国产精品综合| 欧美丝袜丝交足nylons图片| 欧美成人r级一区二区三区| 欧美一区二区三区在| 国产欧美综合在线| 亚洲成人三级小说| 成人免费高清视频| 在线电影院国产精品| **欧美大码日韩| 久久成人精品无人区| 在线免费观看日本一区| 久久只精品国产| 亚洲成人免费视频| 国产麻豆午夜三级精品| 欧美人动与zoxxxx乱| 中文字幕中文字幕中文字幕亚洲无线| 五月激情综合色| www.亚洲精品| 精品粉嫩超白一线天av| 亚洲午夜精品一区二区三区他趣| 日韩—二三区免费观看av| 欧美制服丝袜第一页| 中日韩av电影| 麻豆久久一区二区| 欧美在线观看视频一区二区三区| 国产亚洲福利社区一区| 日韩va亚洲va欧美va久久| 欧美三级乱人伦电影| 亚洲男人都懂的| 不卡一区在线观看| 国产亲近乱来精品视频| 粉嫩av一区二区三区|