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

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

?? armos.c

?? skyeye是一個可以模擬嵌入式硬件開發板的系統軟件
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*  armos.c -- ARMulator OS interface:  ARM6 Instruction Emulator.    Copyright (C) 1994 Advanced RISC Machines Ltd.     This program is free software; you can redistribute it and/or modify    it under the terms of the GNU General Public License as published by    the Free Software Foundation; either version 2 of the License, or    (at your option) any later version.     This program is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    GNU General Public License for more details.     You should have received a copy of the GNU General Public License    along with this program; if not, write to the Free Software    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *//* This file contains a model of Demon, ARM Ltd's Debug Monitor,including all the SWI's required to support the C library. The code init is not really for the faint-hearted (especially the abort handlingcode), but it is a complete example. Defining NOOS will disable all thefun, and definign VAILDATE will define SWI 1 to enter SVC mode, and SWI0x11 to halt the emulator. *///chy 2005-09-12 disable below line//#include "config.h"#include "ansidecl.h"#include <time.h>#include <errno.h>#include <string.h>#include <fcntl.h>#ifndef O_RDONLY#define O_RDONLY 0#endif#ifndef O_WRONLY#define O_WRONLY 1#endif#ifndef O_RDWR#define O_RDWR   2#endif#ifndef O_BINARY#define O_BINARY 0#endif#ifdef __STDC__#define unlink(s) remove(s)#endif#ifdef HAVE_UNISTD_H#include <unistd.h>		/* For SEEK_SET etc */#endif#ifdef __riscosextern int _fisatty (FILE *);#define isatty_(f) _fisatty(f)#else#ifdef __ZTC__#include <io.h>#define isatty_(f) isatty((f)->_file)#else#ifdef macintosh#include <ioctl.h>#define isatty_(f) (~ioctl ((f)->_file, FIOINTERACTIVE, NULL))#else#define isatty_(f) isatty (fileno (f))#endif#endif#endif#include "armdefs.h"#include "armos.h"#include "armemu.h"#ifndef NOOS#ifndef VALIDATE/* #ifndef ASIM *///chy 2005-09-12 disable below line//#include "armfpe.h"/* #endif */#endif#endif/* For RDIError_BreakpointReached.  *///chy 2005-09-12 disable below line//#include "dbg_rdi.h"extern unsigned ARMul_OSInit (ARMul_State * state);extern void ARMul_OSExit (ARMul_State * state);extern unsigned ARMul_OSHandleSWI (ARMul_State * state, ARMword number);extern unsigned ARMul_OSException (ARMul_State * state, ARMword vector,				   ARMword pc);extern ARMword ARMul_OSLastErrorP (ARMul_State * state);extern ARMword ARMul_Debug (ARMul_State * state, ARMword pc, ARMword instr);#define BUFFERSIZE 4096#ifndef FOPEN_MAX#define FOPEN_MAX 64#endif#define UNIQUETEMPS 256/***************************************************************************\*                          OS private Information                           *\***************************************************************************/struct OSblock{	ARMword Time0;	ARMword ErrorP;	ARMword ErrorNo;	FILE *FileTable[FOPEN_MAX];	char FileFlags[FOPEN_MAX];	char *tempnames[UNIQUETEMPS];};#define NOOP 0#define BINARY 1#define READOP 2#define WRITEOP 4#ifdef macintosh#define FIXCRLF(t,c) ((t & BINARY) ? \                      c : \                      ((c == '\n' || c == '\r' ) ? (c ^ 7) : c) \                     )#else#define FIXCRLF(t,c) c#endifstatic ARMword softvectorcode[] = {	/* basic: swi tidyexception + event; mov pc, lr;					   ldmia r11,{r11,pc}; swi generateexception  + event.  */	0xef000090, 0xe1a0e00f, 0xe89b8800, 0xef000080,	/*Reset */	0xef000091, 0xe1a0e00f, 0xe89b8800, 0xef000081,	/*Undef */	0xef000092, 0xe1a0e00f, 0xe89b8800, 0xef000082,	/*SWI  */	0xef000093, 0xe1a0e00f, 0xe89b8800, 0xef000083,	/*Prefetch abort */	0xef000094, 0xe1a0e00f, 0xe89b8800, 0xef000084,	/*Data abort */	0xef000095, 0xe1a0e00f, 0xe89b8800, 0xef000085,	/*Address exception */	0xef000096, 0xe1a0e00f, 0xe89b8800, 0xef000086, /*IRQ*/ 0xef000097, 0xe1a0e00f, 0xe89b8800, 0xef000087, /*FIQ*/ 0xef000098, 0xe1a0e00f, 0xe89b8800, 0xef000088,	/*Error */	0xe1a0f00e		/* default handler */};/***************************************************************************\*            Time for the Operating System to initialise itself.            *\***************************************************************************/unsignedARMul_OSInit (ARMul_State * state){#if 0				// ndef NOOS#ifndef VALIDATE	ARMword instr, i, j;	struct OSblock *OSptr = (struct OSblock *) state->OSptr;	if (state->OSptr == NULL) {		state->OSptr =			(unsigned char *) malloc (sizeof (struct OSblock));		if (state->OSptr == NULL) {			perror ("OS Memory");			exit (15);		}	}	OSptr = (struct OSblock *) state->OSptr;	OSptr->ErrorP = 0;	state->Reg[13] = ADDRSUPERSTACK;	/* set up a stack for the current mode */	ARMul_SetReg (state, SVC32MODE, 13, ADDRSUPERSTACK);	/* and for supervisor mode */	ARMul_SetReg (state, ABORT32MODE, 13, ADDRSUPERSTACK);	/* and for abort 32 mode */	ARMul_SetReg (state, UNDEF32MODE, 13, ADDRSUPERSTACK);	/* and for undef 32 mode */	instr = 0xe59ff000 | (ADDRSOFTVECTORS - 8);	/* load pc from soft vector */	for (i = ARMul_ResetV; i <= ARMFIQV; i += 4)		ARMul_WriteWord (state, i, instr);	/* write hardware vectors */	for (i = ARMul_ResetV; i <= ARMFIQV + 4; i += 4) {		ARMul_WriteWord (state, ADDRSOFTVECTORS + i,				 SOFTVECTORCODE + i * 4);		ARMul_WriteWord (state, ADDRSOFHANDLERS + 2 * i + 4L,				 SOFTVECTORCODE + sizeof (softvectorcode) -				 4L);	}	for (i = 0; i < sizeof (softvectorcode); i += 4)		ARMul_WriteWord (state, SOFTVECTORCODE + i,				 softvectorcode[i / 4]);	for (i = 0; i < FOPEN_MAX; i++)		OSptr->FileTable[i] = NULL;	for (i = 0; i < UNIQUETEMPS; i++)		OSptr->tempnames[i] = NULL;	ARMul_ConsolePrint (state, ", Demon 1.01");/* #ifndef ASIM */	/* install fpe */	for (i = 0; i < fpesize; i += 4)	/* copy the code */		ARMul_WriteWord (state, FPESTART + i, fpecode[i >> 2]);	for (i = FPESTART + fpesize;; i -= 4) {	/* reverse the error strings */		if ((j = ARMul_ReadWord (state, i)) == 0xffffffff)			break;		if (state->bigendSig && j < 0x80000000) {	/* it's part of the string so swap it */			j = ((j >> 0x18) & 0x000000ff) |				((j >> 0x08) & 0x0000ff00) |				((j << 0x08) & 0x00ff0000) | ((j << 0x18) &							      0xff000000);			ARMul_WriteWord (state, i, j);		}	}	ARMul_WriteWord (state, FPEOLDVECT, ARMul_ReadWord (state, 4));	/* copy old illegal instr vector */	ARMul_WriteWord (state, 4, FPENEWVECT (ARMul_ReadWord (state, i - 4)));	/* install new vector */	ARMul_ConsolePrint (state, ", FPE");/* #endif  ASIM */#endif /* VALIDATE */#endif /* NOOS */	return (TRUE);}voidARMul_OSExit (ARMul_State * state){	if (state->OSptr)		free ((char *) state->OSptr);}/***************************************************************************\*                  Return the last Operating System Error.                  *\***************************************************************************/ARMwordARMul_OSLastErrorP (ARMul_State * state){	return ((struct OSblock *) state->OSptr)->ErrorP;}static int translate_open_mode[] = {	O_RDONLY,		/* "r"   */	O_RDONLY + O_BINARY,	/* "rb"  */	O_RDWR,			/* "r+"  */	O_RDWR + O_BINARY,	/* "r+b" */	O_WRONLY + O_CREAT + O_TRUNC,	/* "w"   */	O_WRONLY + O_BINARY + O_CREAT + O_TRUNC,	/* "wb"  */	O_RDWR + O_CREAT + O_TRUNC,	/* "w+"  */	O_RDWR + O_BINARY + O_CREAT + O_TRUNC,	/* "w+b" */	O_WRONLY + O_APPEND + O_CREAT,	/* "a"   */	O_WRONLY + O_BINARY + O_APPEND + O_CREAT,	/* "ab"  */	O_RDWR + O_APPEND + O_CREAT,	/* "a+"  */	O_RDWR + O_BINARY + O_APPEND + O_CREAT	/* "a+b" */};static voidSWIWrite0 (ARMul_State * state, ARMword addr){	ARMword temp;	struct OSblock *OSptr = (struct OSblock *) state->OSptr;	while ((temp = ARMul_ReadByte (state, addr++)) != 0)		(void) fputc ((char) temp, stdout);	OSptr->ErrorNo = errno;}static voidWriteCommandLineTo (ARMul_State * state, ARMword addr){	ARMword temp;	char *cptr = state->CommandLine;	if (cptr == NULL)		cptr = "\0";	do {		temp = (ARMword) * cptr++;		ARMul_WriteByte (state, addr++, temp);	}	while (temp != 0);}static voidSWIopen (ARMul_State * state, ARMword name, ARMword SWIflags){	struct OSblock *OSptr = (struct OSblock *) state->OSptr;	char dummy[2000];	int flags;	int i;	for (i = 0; (dummy[i] = ARMul_ReadByte (state, name + i)); i++);	/* Now we need to decode the Demon open mode */	flags = translate_open_mode[SWIflags];	/* Filename ":tt" is special: it denotes stdin/out */	if (strcmp (dummy, ":tt") == 0) {		if (flags == O_RDONLY)	/* opening tty "r" */			state->Reg[0] = 0;	/* stdin */		else			state->Reg[0] = 1;	/* stdout */	}	else {		state->Reg[0] = (int) open (dummy, flags, 0666);		OSptr->ErrorNo = errno;	}}static voidSWIread (ARMul_State * state, ARMword f, ARMword ptr, ARMword len){	struct OSblock *OSptr = (struct OSblock *) state->OSptr;	int res;	int i;	char *local = malloc (len);	if (local == NULL) {		fprintf (stderr,			 "sim: Unable to read 0x%ulx bytes - out of memory\n",			 len);		return;	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
884aa四虎影成人精品一区| 欧美体内she精高潮| 五月天丁香久久| 一区二区三区免费观看| 亚洲欧美日韩国产中文在线| 日韩美女视频一区二区 | 麻豆成人av在线| 日韩高清在线观看| 麻豆专区一区二区三区四区五区| 日韩电影在线免费看| 免费在线视频一区| 国产一区二区三区香蕉| 成人免费三级在线| 91麻豆swag| 欧美日韩国产另类不卡| 日韩一区二区三区在线观看| 久久久综合视频| 国产精品色在线| 亚洲午夜激情网站| 蜜桃一区二区三区四区| 国产河南妇女毛片精品久久久| 成人h精品动漫一区二区三区| 91免费版pro下载短视频| 欧美精品在线一区二区三区| 欧美成人女星排名| 中文字幕亚洲精品在线观看| 亚洲成人一二三| 国产精品综合一区二区三区| 成人激情开心网| 欧美日本在线播放| 国产丝袜美腿一区二区三区| 亚洲一区在线看| 韩国成人在线视频| 欧美在线不卡视频| 精品国产百合女同互慰| 亚洲天堂福利av| 蜜臀av性久久久久蜜臀aⅴ流畅| 波多野结衣精品在线| 欧美欧美午夜aⅴ在线观看| 日本一区二区三区电影| 亚洲444eee在线观看| 国产91精品免费| 日韩一区二区在线免费观看| 亚洲免费av在线| 国产成人三级在线观看| 3751色影院一区二区三区| 一色桃子久久精品亚洲| 激情国产一区二区| 在线播放视频一区| 亚洲欧美国产高清| 国产精品888| 精品国产电影一区二区 | 日韩一级黄色大片| 一区二区三区四区视频精品免费 | 国产suv精品一区二区883| 欧美另类高清zo欧美| 亚洲丝袜自拍清纯另类| 国产激情视频一区二区三区欧美| 欧美一区二区三区在线看| 亚洲综合999| 色国产精品一区在线观看| 国产精品灌醉下药二区| 国产成人免费在线观看不卡| 精品国产免费人成电影在线观看四季 | 亚洲国产一区视频| 一本大道久久a久久综合婷婷| 久久精品水蜜桃av综合天堂| 国内成人精品2018免费看| 91精品国产综合久久福利软件 | 欧美妇女性影城| 亚洲国产综合色| 欧美日韩精品一区二区三区| 亚洲午夜精品一区二区三区他趣| 色婷婷亚洲一区二区三区| 亚洲欧洲成人自拍| 一本色道亚洲精品aⅴ| 亚洲欧美在线另类| 欧美亚洲一区二区在线观看| 亚洲成av人片一区二区| 欧美乱妇15p| 精品一区中文字幕| 国产日韩高清在线| 99久久免费精品高清特色大片| 中文字幕一区在线观看视频| 一本到不卡免费一区二区| 亚洲第一会所有码转帖| 欧美tickling挠脚心丨vk| 韩国一区二区视频| 国产精品视频线看| 日本精品免费观看高清观看| 日韩在线一区二区| 久久综合久久综合九色| 成a人片亚洲日本久久| 夜夜操天天操亚洲| 日韩午夜中文字幕| 东方欧美亚洲色图在线| 亚洲伦理在线精品| 欧美一区二区国产| 成人性生交大合| 亚洲成人综合视频| 久久久精品国产免费观看同学| 99久久精品国产网站| 午夜影视日本亚洲欧洲精品| 久久综合久久综合亚洲| 一本大道av伊人久久综合| 日本sm残虐另类| 国产精品二区一区二区aⅴ污介绍| 色综合天天综合网天天狠天天| 免费人成网站在线观看欧美高清| 久久这里只有精品视频网| 欧美在线不卡一区| 风流少妇一区二区| 亚洲高清在线视频| 中文字幕欧美区| 91精品国产福利| 一本一道综合狠狠老| 国产麻豆精品久久一二三| 亚洲一区二区三区中文字幕| 久久久五月婷婷| 制服丝袜av成人在线看| 国产精品99久久久| 蜜臀av一区二区在线免费观看| 最新热久久免费视频| 精品福利av导航| 欧美一级一级性生活免费录像| 成人网页在线观看| 激情欧美一区二区三区在线观看| 爽好久久久欧美精品| 自拍偷在线精品自拍偷无码专区 | 欧美在线观看禁18| 成人免费观看av| 国产另类ts人妖一区二区| 日韩精品欧美精品| 亚洲综合网站在线观看| 中文字幕永久在线不卡| 中文字幕精品一区| 国产色爱av资源综合区| 欧美情侣在线播放| 欧美日韩精品三区| 欧美体内she精高潮| 色老汉av一区二区三区| 99久久久久久| 99精品视频在线观看免费| 成人三级伦理片| caoporn国产一区二区| 粉嫩av亚洲一区二区图片| 国产成人免费av在线| 国产曰批免费观看久久久| 日韩成人午夜精品| 美国毛片一区二区三区| 日韩高清电影一区| 久久99精品久久久久婷婷| 蜜桃视频一区二区三区在线观看| 秋霞影院一区二区| 蜜臂av日日欢夜夜爽一区| 久久99国产精品久久| 精品系列免费在线观看| 国产精品99久久久| av成人免费在线观看| 色综合久久久久久久| 欧美日韩精品一区二区三区| 3d动漫精品啪啪一区二区竹菊| 欧美大黄免费观看| 久久久久国产成人精品亚洲午夜| 亚洲国产精品激情在线观看| 亚洲色图.com| 日韩中文字幕1| 国产成人亚洲综合a∨婷婷图片 | 91精品在线麻豆| 精品区一区二区| 国产精品成人免费精品自在线观看 | 制服丝袜亚洲色图| 26uuu国产在线精品一区二区| 国产拍揄自揄精品视频麻豆| 国产精品国产三级国产普通话99| 亚洲天堂网中文字| 免费一级片91| 99这里只有精品| 欧美日韩不卡视频| 久久伊99综合婷婷久久伊| 亚洲图片激情小说| 久久99国产乱子伦精品免费| www.欧美精品一二区| 777奇米成人网| 中文字幕一区视频| 秋霞电影一区二区| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 亚洲精品福利视频网站| 麻豆久久久久久久| 丁香婷婷综合网| 欧美一区二区在线视频| 国产精品视频你懂的| 日韩电影免费一区| av不卡在线播放| 精品国产乱码久久久久久牛牛| 亚洲午夜久久久久久久久电影网 | 国产最新精品免费| 欧美日精品一区视频| 国产女主播一区| 麻豆精品在线观看|