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

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

?? arm_arch_interface.c

?? skyeye-1.2-RC7-3的源代碼
?? C
字號:
#include "skyeye_types.h"#include "armdefs.h"#include "armemu.h"ARMul_State *state;static int verbosity;int big_endian;static int mem_size = (1 << 21);static mem_config_t arm_mem;static cpu_config_t *p_arm_cpu;extern ARMword skyeye_cachetype;//chy 2005-08-01, borrow from wlm's 2005-07-26's changestatic voidbase_termios_exit (void){//koodailar remove it for mingw 2005.12.18--------------------------------------                  #ifndef __MINGW32__	tcsetattr (STDIN_FILENO, TCSANOW, &(state->base_termios));#endif//end --------------------------------------------------------------------------}static voidarm_reset_state (){	//chy 2003-01-14 seems another ARMul_Reset, the first is in ARMul_NewState	//chy 2003-08-19 mach_init should call ARMul_SelectProcess	//skyeye_config.mach->mach_init (state, skyeye_config.mach);	//chy:2003-08-19, after mach_init, because ARMul_Reset should after ARMul_SelectProcess	ARMul_Reset (state);	state->NextInstr = 0;	state->Emulate = 3;	// add step disassemble code here :teawater	state->disassemble = skyeye_config.can_step_disassemble;	io_reset (state);	/*from ARMul_Reset. */}static voidarm_init_state (){	ARMul_EmulateInit ();	state = ARMul_NewState ();	state->cpu = p_arm_cpu;	state->mem_bank = &arm_mem;//chy 2005-08-01, borrow from wlm's 2005-07-26's change//koodailar remove it for mingw 2005.12.18--------------------------------------#ifndef __MINGW32__	if (tcgetattr (STDIN_FILENO, &(state->base_termios))) {#ifndef __CYGWIN__		//tcgetattr & tcsetattr can't be used with gdb in cygwin		printf ("SKYEYE: tcgetattr error\n");		skyeye_exit (-1);#endif	}#endif//end---------------------------------------------------------------------------		if (atexit (base_termios_exit)) {		printf ("SKYEYE: atexit error.\n");		skyeye_exit (-1);	}	//it will be set in  skyeye_config.mach->mach_init(state, skyeye_config.mach);	state->abort_model = 0;//chy 2005-08-01 ---------------------------------------------	state->bigendSig = (big_endian ? HIGH : LOW);	ARMul_MemoryInit (state, mem_size);	ARMul_OSInit (state);	state->verbose = verbosity;	/*some option should init before read config. e.g. uart option. *///chy 2005-08-01 ---------------------------------------------//      skyeye_option_init (&skyeye_config);	//    skyeye_read_config ();	//chy 2005-08-01 commit and disable ksh's energy estimantion, will be recover in the future	/*added by ksh for energy estimation,in 2004-11-26 */	state->energy.energy_prof = skyeye_config.energy.energy_prof;	/*mach init */	skyeye_config.mach->mach_init (state, skyeye_config.mach);}static voidarm_step_once (){	//ARMul_DoInstr(state);	state->NextInstr = RESUME;      /* treat as PC change */	state->Reg[15] = ARMul_DoProg(state);	FLUSHPIPE;}static voidarm_set_pc (WORD pc){	state->Reg[15] = pc;}static WORDarm_get_pc(){	return (WORD)state->Reg[15];}static intarm_ICE_write_byte (WORD addr, uint8_t v){	return (ARMul_ICE_WriteByte (state, (ARMword) addr, (ARMword) v));}static int arm_ICE_read_byte (WORD addr, uint8_t *pv){	return (ARMul_ICE_ReadByte (state, (ARMword) addr, (ARMword *)pv));}extern void at91_mach_init ();extern void ep7312_mach_init ();extern void lh79520_mach_init ();extern void ep9312_mach_init ();extern void s3c4510b_mach_init ();extern void s3c44b0_mach_init ();extern void sa1100_mach_init ();extern void pxa250_mach_init ();extern void pxa270_mach_init ();extern void cs89712_mach_init ();extern void at91rm92_mach_init ();extern void s3c2410x_mach_init ();extern void s3c2440_mach_init ();extern void shp_mach_init ();extern void lpc_mach_init ();extern void ns9750_mach_init ();extern void lpc2210_mach_init();//chy 2003-08-11: the cpu_id can be found in linux/arch/arm/boot/compressed/head.Scpu_config_t arm_cpus[] = {	{"armv3", "arm710", 0x41007100, 0xfff8ff00, DATACACHE},	{"armv3", "arm7tdmi", 0x41007700, 0xfff8ff00, NONCACHE},	{"armv4", "arm720t", 0x41807200, 0xffffff00, DATACACHE},	{"armv4", "sa1110", SA1110, 0xfffffff0, INSTCACHE},	{"armv4", "sa1100", SA1100, 0xffffffe0, INSTCACHE},	{"armv4", "arm920t", 0x41009200, 0xff00fff0, INSTCACHE},	{"armv5", "arm926ejs", 0x41069260, 0xff0ffff0, INSTCACHE},	{"xscale", "pxa25x", PXA250, 0xfffffff0, INSTCACHE},	{"xscale", "pxa27x", PXA270, 0xfffffff0, INSTCACHE}};;static intarm_parse_cpu (const char *params[]){	int i;	for (i = 0; i < (sizeof (arm_cpus) / sizeof (cpu_config_t)); i++) {		if (!strncmp		    (params[0], arm_cpus[i].cpu_name, MAX_PARAM_NAME)) {			p_arm_cpu = &arm_cpus[i];			SKYEYE_INFO ("cpu info: %s, %s, %x, %x, %x \n",				     p_arm_cpu->cpu_arch_name,				     p_arm_cpu->cpu_name,				     p_arm_cpu->cpu_val,				     p_arm_cpu->cpu_mask,				     p_arm_cpu->cachetype);			skyeye_cachetype = p_arm_cpu->cachetype;			return 0;		}	}	SKYEYE_ERR ("Error: Unkonw cpu name \"%s\"\n", params[0]);	return -1;}machine_config_t arm_machines[] = {	/*machine define for cpu without mmu */	/* ATMEL AT91X40 */	{"at91", at91_mach_init, NULL, NULL, NULL}	,	/* PHILIPS LPC2xxxx */	{"lpc", lpc_mach_init, NULL, NULL, NULL}	,	/*Samsung s3c4510b */	{"s3c4510b", s3c4510b_mach_init, NULL, NULL, NULL}	,	/*Samsung s3c44b0 */	{"s3c44b0", s3c44b0_mach_init, NULL, NULL, NULL}	,	/*machine define for cpu with mmu */	/* Cirrus Logic EP7312 */	{"ep7312", ep7312_mach_init, NULL, NULL, NULL}	,	/* sharp LH79520 */	{"lh79520", lh79520_mach_init, NULL, NULL, NULL}	,	/* Cirrus Logic EP9312 */	{"ep9312", ep9312_mach_init, NULL, NULL, NULL}	,	/*machine define for cs89712 */	{"cs89712", cs89712_mach_init, NULL, NULL, NULL}	,	/*machine define for sa1100 */	{"sa1100", sa1100_mach_init, NULL, NULL, NULL}	,	/*machine define for xscale pxa250 lubbock developboard */	{"pxa_lubbock", pxa250_mach_init, NULL, NULL, NULL}	,	/*machine define for xscale pxa270 mainstone developboard */	{"pxa_mainstone", pxa270_mach_init, NULL, NULL, NULL}	,	/*machine define for at91RM9200 */	{"at91rm92", at91rm92_mach_init, NULL, NULL, NULL}	,	/*machine define for s3c2410x */	{"s3c2410x", s3c2410x_mach_init, NULL, NULL, NULL}	,	/*machine define for s3c2440 */	{"s3c2440", s3c2410x_mach_init, NULL, NULL, NULL}	,	/*machine define for sharp lh7a400 developboard */	{"sharp_lh7a400", shp_mach_init, NULL, NULL, NULL}	,	/*machine define for NetSilicon ns9750 */	{"ns9750", ns9750_mach_init, NULL, NULL, NULL}	,	/*machine define for Philips LPC2210*/	{"lpc2210", lpc2210_mach_init, NULL, NULL, NULL}	,	/*NULL machine*/	{NULL,NULL,NULL,NULL,NULL}};static intarm_parse_mach (machine_config_t * mach, const char *params[]){	int i;	for (i = 0; i < (sizeof (arm_machines) / sizeof (machine_config_t));	     i++) {		if (!strncmp		    (params[0], arm_machines[i].machine_name,		     MAX_PARAM_NAME)) {			skyeye_config.mach = &arm_machines[i];			SKYEYE_INFO				("mach info: name %s, mach_init addr %p\n",				 skyeye_config.mach->machine_name,				 skyeye_config.mach->mach_init);			return 0;		}	}	SKYEYE_ERR ("Error: Unkonw mach name \"%s\"\n", params[0]);	return -1;}/*mem bank*/extern ARMword real_read_word (ARMul_State * state, ARMword addr);extern void real_write_word (ARMul_State * state, ARMword addr, ARMword data);extern ARMword io_read_word (ARMul_State * state, ARMword addr);extern void io_write_word (ARMul_State * state, ARMword addr, ARMword data);/*ywc 2005-03-30*/extern ARMword flash_read_byte (ARMul_State * state, ARMword addr);extern void flash_write_byte (ARMul_State * state, ARMword addr,			      ARMword data);extern ARMword flash_read_halfword (ARMul_State * state, ARMword addr);extern void flash_write_halfword (ARMul_State * state, ARMword addr,				  ARMword data);extern ARMword flash_read_word (ARMul_State * state, ARMword addr);extern void flash_write_word (ARMul_State * state, ARMword addr,			      ARMword data);static intarm_parse_mem (int num_params, const char *params[]){	char name[MAX_PARAM_NAME], value[MAX_PARAM_NAME];	int i, num;//chy 2003-09-12, now support more io bank//      static int io_bank_num=0;	//state->mem_bank = (mem_config_t *)malloc(sizeof(mem_config_t));	mem_config_t *mc = &arm_mem;	mem_bank_t *mb = mc->mem_banks;	mc->bank_num = mc->current_num++;	num = mc->current_num - 1;	/*mem_banks should begin from 0. */	mb[num].filename[0] = '\0';	for (i = 0; i < num_params; i++) {		if (split_param (params[i], name, value) < 0)			SKYEYE_ERR				("Error: mem_bank %d has wrong parameter \"%s\".\n",				 num, name);		if (!strncmp ("map", name, strlen (name))) {			if (!strncmp ("M", value, strlen (value))) {				mb[num].read_byte = real_read_byte;				mb[num].write_byte = real_write_byte;				mb[num].read_halfword = real_read_halfword;				mb[num].write_halfword = real_write_halfword;				mb[num].read_word = real_read_word;				mb[num].write_word = real_write_word;				mb[num].type = MEMTYPE_RAM;			}			else if (!strncmp ("I", value, strlen (value))) {				mb[num].read_byte = io_read_byte;				mb[num].write_byte = io_write_byte;				mb[num].read_halfword = io_read_halfword;				mb[num].write_halfword = io_write_halfword;				mb[num].read_word = io_read_word;				mb[num].write_word = io_write_word;				mb[num].type = MEMTYPE_IO;				/*ywc 2005-03-30 */			}			else if (!strncmp ("F", value, strlen (value))) {				mb[num].read_byte = flash_read_byte;				mb[num].write_byte = flash_write_byte;				mb[num].read_halfword = flash_read_halfword;				mb[num].write_halfword = flash_write_halfword;				mb[num].read_word = flash_read_word;				mb[num].write_word = flash_write_word;				mb[num].type = MEMTYPE_FLASH;			}			else {				SKYEYE_ERR					("Error: mem_bank %d \"%s\" parameter has wrong value \"%s\"\n",					 num, name, value);			}		}		else if (!strncmp ("type", name, strlen (name))) {			//chy 2003-09-21: process type			if (!strncmp ("R", value, strlen (value))) {				if (mb[num].type == MEMTYPE_RAM)					mb[num].type = MEMTYPE_ROM;				mb[num].write_byte = warn_write_byte;				mb[num].write_halfword = warn_write_halfword;				mb[num].write_word = warn_write_word;			}		}		else if (!strncmp ("addr", name, strlen (name))) {			if (value[0] == '0' && value[1] == 'x')				mb[num].addr = strtoul (value, NULL, 16);			else				mb[num].addr = strtoul (value, NULL, 10);		}		else if (!strncmp ("size", name, strlen (name))) {			if (value[0] == '0' && value[1] == 'x')				mb[num].len = strtoul (value, NULL, 16);			else				mb[num].len = strtoul (value, NULL, 10);		}		else if (!strncmp ("file", name, strlen (name))) {			strncpy (mb[num].filename, value, strlen (value) + 1);		}		else if (!strncmp ("boot", name, strlen (name))) {			/*this must be the last parameter. */			if (!strncmp ("yes", value, strlen (value)))				skyeye_config.start_address = mb[num].addr;		}		else {			SKYEYE_ERR				("Error: mem_bank %d has unknow parameter \"%s\".\n",				 num, name);		}	}	return 0;}voidinit_arm_arch (){	static arch_config_t arm_arch;	arm_arch.arch_name = "arm";	arm_arch.init = arm_init_state;	arm_arch.reset = arm_reset_state;	arm_arch.set_pc = arm_set_pc;	arm_arch.get_pc = arm_get_pc;	arm_arch.step_once = arm_step_once;	arm_arch.ICE_write_byte = arm_ICE_write_byte;	arm_arch.ICE_read_byte = arm_ICE_read_byte;	arm_arch.parse_cpu = arm_parse_cpu;	arm_arch.parse_mach = arm_parse_mach;	arm_arch.parse_mem = arm_parse_mem;	register_arch (&arm_arch);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜桃视频在线观看一区| 怡红院av一区二区三区| 久久国产婷婷国产香蕉| 日韩欧美不卡一区| 韩国中文字幕2020精品| 久久免费电影网| 国产精品123区| 国产精品美女一区二区| 91丨porny丨国产入口| 亚洲精品日日夜夜| 8x8x8国产精品| 激情五月激情综合网| 国产丝袜欧美中文另类| 97se狠狠狠综合亚洲狠狠| 亚洲精品免费在线播放| 777亚洲妇女| 精品写真视频在线观看| 国产精品色噜噜| 在线看不卡av| 久久99精品久久只有精品| 国产精品每日更新| 欧美高清精品3d| 国产综合一区二区| 亚洲欧美区自拍先锋| 欧美高清激情brazzers| 国产999精品久久久久久 | 91精品视频网| 国产一区二区三区四区在线观看 | 欧美一区二区三区啪啪| 国产电影一区在线| 亚洲二区视频在线| 久久欧美一区二区| 欧美日韩国产一二三| 国产成+人+日韩+欧美+亚洲| 一区二区三区中文免费| 久久婷婷久久一区二区三区| 91麻豆福利精品推荐| 久久狠狠亚洲综合| 亚洲一区二区在线免费看| 久久久亚洲精品一区二区三区| 日本韩国欧美一区| 狠狠色伊人亚洲综合成人| 亚洲综合在线电影| 欧美经典一区二区| 欧美不卡在线视频| 欧美视频精品在线观看| 成人免费毛片嘿嘿连载视频| 日av在线不卡| 亚洲va欧美va国产va天堂影院| 欧美激情一区二区三区不卡| 欧美一区二区视频观看视频| 91丨porny丨中文| 成人久久视频在线观看| 久久国产免费看| 丝瓜av网站精品一区二区| 亚洲日本va在线观看| 国产亚洲欧洲一区高清在线观看| 欧美日韩视频在线第一区| 97久久精品人人做人人爽| 国产成人综合在线播放| 久久国产精品99精品国产| 香蕉影视欧美成人| 亚洲在线观看免费视频| 亚洲欧美自拍偷拍色图| 国产亚洲综合性久久久影院| 日韩精品在线一区| 欧美一区二区精品在线| 欧美日韩国产一区二区三区地区| 在线观看一区不卡| 日本久久精品电影| 日本高清不卡一区| 一本久久综合亚洲鲁鲁五月天| 成人黄色免费短视频| 成人综合婷婷国产精品久久| 国产精品2024| 国产福利一区二区| 风间由美性色一区二区三区| 国产福利一区二区三区视频在线| 国产一区二区三区免费看| 久久99精品一区二区三区三区| 精品制服美女丁香| 国产一区二区伦理片| 国产成人亚洲精品青草天美| 国产精品一区二区91| 国产成人丝袜美腿| 99在线精品观看| 色偷偷一区二区三区| 色屁屁一区二区| 91久久一区二区| 欧美色图在线观看| 制服丝袜亚洲精品中文字幕| 欧美一区二区三区喷汁尤物| 亚洲精品在线一区二区| 国产午夜精品一区二区三区嫩草 | 欧美久久久久久久久| 欧美精品99久久久**| 欧美mv日韩mv| 国产欧美中文在线| 亚洲精品视频在线观看网站| 亚洲午夜久久久久久久久电影网| 日日骚欧美日韩| 经典三级视频一区| eeuss鲁片一区二区三区在线看| 一本色道**综合亚洲精品蜜桃冫| 欧美日韩一区精品| 欧美岛国在线观看| 国产精品污污网站在线观看| 亚洲欧美另类久久久精品2019| 一区二区三区四区不卡视频| 日韩激情一二三区| 国产成人鲁色资源国产91色综| 91色九色蝌蚪| 欧美一区二区三区免费在线看 | 欧美日韩电影一区| 久久久亚洲综合| 亚洲伊人伊色伊影伊综合网| 美国av一区二区| www.日韩精品| 日韩一区二区三区在线| 日本一区二区三区四区| 亚洲成av人**亚洲成av**| 国产精品一区二区视频| 欧美三级资源在线| 久久久久久97三级| 丝袜亚洲精品中文字幕一区| 不卡一区在线观看| 日韩欧美色电影| 亚洲一区二区三区视频在线播放 | 成人伦理片在线| 欧美一区二区国产| 亚洲另类春色校园小说| 国产一区二区三区美女| 欧美日韩一区国产| 18欧美乱大交hd1984| 精品在线亚洲视频| 欧美日韩精品一区二区三区| 亚洲国产精品精华液ab| 免费成人美女在线观看.| 91小视频在线| 国产日韩欧美精品在线| 裸体健美xxxx欧美裸体表演| 一本高清dvd不卡在线观看| www久久久久| 日本成人中文字幕| 欧美视频自拍偷拍| 亚洲精选免费视频| 成人午夜电影网站| 久久综合视频网| 日韩av网站在线观看| 欧美性大战久久久| 亚洲欧美激情一区二区| 成人午夜激情影院| 国产三级精品视频| 国产一区二区视频在线播放| 欧美成人性战久久| 日韩成人免费电影| 在线不卡的av| 五月综合激情日本mⅴ| 日本丰满少妇一区二区三区| 亚洲欧洲在线观看av| 成人av网在线| 国产人成一区二区三区影院| 国产在线不卡一卡二卡三卡四卡| 欧美一区二区精美| 免费在线观看一区| 日韩午夜电影av| 麻豆精品一区二区三区| 日韩一级完整毛片| 六月丁香婷婷色狠狠久久| 欧美大胆一级视频| 精品一区二区三区香蕉蜜桃 | 国产69精品久久久久毛片| 精品国产1区二区| 久久99国产精品免费| 久久久综合激的五月天| 国产精品系列在线播放| 国产精品欧美一级免费| 99久久国产免费看| 一区二区三区加勒比av| 欧美日韩不卡一区二区| 日本一区中文字幕| 欧美成人三级电影在线| 国产精品99久久久| 中文字幕中文乱码欧美一区二区| a美女胸又www黄视频久久| 亚洲美女在线一区| 欧美三级日韩三级| 日本美女视频一区二区| 久久欧美中文字幕| 91美女视频网站| 午夜精品一区二区三区三上悠亚| 日韩天堂在线观看| 成人性生交大片免费看在线播放| 亚洲私人影院在线观看| 欧美午夜精品理论片a级按摩| 蜜臀99久久精品久久久久久软件| 久久蜜桃av一区二区天堂| 91啪亚洲精品| 日韩成人精品视频| 国产欧美精品区一区二区三区|