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

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

?? 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;
}*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
7777精品伊人久久久大香线蕉超级流畅 | 午夜伦欧美伦电影理论片| 日韩一级片在线观看| 91视频免费播放| 成人av在线资源| 国产成人av电影在线观看| 亚洲另类色综合网站| 国产精品国产三级国产a| 欧美成va人片在线观看| 欧美精品123区| 欧美久久久影院| 中文字幕一区二区三区四区| 亚洲欧洲日产国产综合网| 免费高清在线视频一区·| 日韩精品乱码av一区二区| 五月天中文字幕一区二区| jvid福利写真一区二区三区| 日本福利一区二区| 欧洲av在线精品| 日韩一区二区三区在线| 亚洲精品高清在线观看| av电影天堂一区二区在线观看| 日韩欧美激情在线| 亚洲欧洲三级电影| 国产成人啪免费观看软件| 日韩欧美专区在线| 免费久久99精品国产| 欧美日韩精品久久久| 精品精品国产高清a毛片牛牛| 久久精品一区二区三区不卡牛牛| 国产亚洲成年网址在线观看| 精品中文字幕一区二区| 处破女av一区二区| 宅男在线国产精品| 亚洲va天堂va国产va久| 国产伦精品一区二区三区免费迷| 91麻豆国产自产在线观看| 国产精品久久久久影视| 97精品久久久午夜一区二区三区| 91精品国产麻豆国产自产在线| 久久精品免视看| 国产精品亚洲а∨天堂免在线| 欧美亚洲国产一区二区三区va| 欧美不卡一区二区| 国产一区三区三区| 亚洲欧美综合另类在线卡通| 91社区在线播放| 亚洲主播在线观看| 成人爱爱电影网址| 亚洲女人小视频在线观看| 免费成人av资源网| 久久综合九色综合欧美就去吻| 亚洲电影视频在线| 欧美一区二区黄| 国产激情视频一区二区三区欧美 | 4438x成人网最大色成网站| 秋霞电影一区二区| 久久精品一区二区三区四区| 99免费精品在线| 亚洲成国产人片在线观看| 91麻豆精品国产91久久久久| 麻豆高清免费国产一区| 欧美日韩久久久| 狠狠色2019综合网| 日韩一区二区免费电影| 国产精品原创巨作av| 亚洲卡通动漫在线| 精品日韩一区二区三区| heyzo一本久久综合| 丝袜国产日韩另类美女| 久久精品一区二区三区不卡牛牛| 日本乱人伦aⅴ精品| 日本欧美加勒比视频| 91精品久久久久久蜜臀| 国产成人精品aa毛片| 日韩黄色免费电影| 国产精品超碰97尤物18| 日韩精品一区在线| 一本高清dvd不卡在线观看| 中文字幕一区二区三| 欧美一区二区精品| 91国偷自产一区二区开放时间 | 成人禁用看黄a在线| 五月天中文字幕一区二区| 国产精品久久久久久久久久免费看| 欧美亚洲动漫精品| 国产成人av在线影院| 日韩在线a电影| 1区2区3区国产精品| 久久久精品欧美丰满| 岛国av在线一区| 美女视频黄频大全不卡视频在线播放| 中文字幕制服丝袜一区二区三区 | 国产一区二区电影| 天天色综合天天| 亚洲精品日产精品乱码不卡| 久久婷婷国产综合精品青草| 欧美日韩精品系列| 91激情在线视频| 91天堂素人约啪| 成人性生交大片免费看中文| 久久99国产精品久久99| 免费视频最近日韩| 婷婷久久综合九色综合绿巨人 | 久久99精品国产麻豆婷婷| 天天综合天天做天天综合| 亚洲精品国产视频| 亚洲欧美日本在线| 中文字幕在线观看不卡| 国产精品久久久久影院老司| 国产欧美一区二区精品忘忧草| 91丨九色丨黑人外教| 成人国产电影网| 成人av免费在线| 99九九99九九九视频精品| 成人的网站免费观看| 91丨porny丨首页| 色综合色综合色综合色综合色综合 | 欧洲精品一区二区| 色成人在线视频| 欧美午夜宅男影院| 欧美欧美欧美欧美| 91精品久久久久久久91蜜桃| 欧美精品123区| 91精品国产91热久久久做人人| 欧美丰满嫩嫩电影| 精品国内二区三区| 日本一区二区视频在线| 1区2区3区精品视频| 一区二区三区四区视频精品免费| 日韩精品一区二区三区三区免费 | 国产欧美日韩三级| 国产精品婷婷午夜在线观看| 欧美一个色资源| 26uuu亚洲综合色| 国产视频一区二区在线观看| 中文字幕精品在线不卡| 欧美成人bangbros| 亚洲国产精品黑人久久久| 最新欧美精品一区二区三区| 亚洲黄一区二区三区| 蜜臀av一区二区| 成人综合激情网| 欧美三级电影精品| 91亚洲精品久久久蜜桃| 欧美精品欧美精品系列| 国产日产欧产精品推荐色| 亚洲同性同志一二三专区| 国产欧美日韩在线观看| 一区二区三区在线播| 久久国产乱子精品免费女| 日韩精品欧美精品| 床上的激情91.| 91麻豆精品国产自产在线观看一区| 日韩欧美一区在线| 亚洲欧美日本在线| 经典三级视频一区| 色哟哟一区二区三区| 日韩视频在线你懂得| 中文字幕在线一区免费| 老司机精品视频一区二区三区| gogo大胆日本视频一区| 日韩欧美高清dvd碟片| 亚洲人成小说网站色在线| 精品一区二区在线观看| 91丨九色丨黑人外教| 久久日韩精品一区二区五区| 亚洲精品乱码久久久久久久久| 极品少妇xxxx精品少妇偷拍| 色偷偷久久人人79超碰人人澡| 精品久久99ma| 午夜久久久久久久久| 99免费精品在线| 国产欧美日韩麻豆91| 久久er精品视频| 欧美日韩免费一区二区三区| 中文字幕中文字幕一区| 国产高清亚洲一区| 精品国产乱码久久久久久免费 | 亚洲一区二区三区四区五区中文 | 91麻豆精品国产91久久久资源速度 | 国产精品久久久久久久久果冻传媒| 日本不卡的三区四区五区| 日本乱码高清不卡字幕| 中文字幕在线一区免费| 国产成人av电影在线观看| 精品国产乱码久久久久久久 | 国产高清视频一区| 久久亚洲精品小早川怜子| 日本不卡高清视频| 91精品欧美综合在线观看最新| 亚洲午夜日本在线观看| 蜜臀av在线播放一区二区三区| 欧美三级午夜理伦三级中视频| 中文字幕一区二区三区在线不卡| 成人黄色免费短视频| 国产精品国产三级国产专播品爱网| 国产精品一区一区| 国产丝袜美腿一区二区三区| 国产白丝精品91爽爽久久|