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

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

?? armio.c

?? skyeye是一個可以模擬嵌入式硬件開發板的系統軟件
?? C
字號:
/*    armio.c - I/O registers and interrupt controller.    ARMulator extensions for the ARM7100 family.    Copyright (C) 1999  Ben Williamson	Changes to support running uClinux/Atmel AT91 targets    Copyright (C) 2002  David McCullough <davidm@snapgear.com>    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*/#include <sys/time.h>#include <sys/types.h>#include <unistd.h>#include "armdefs.h"/* *  7/17/2003     clean some routine. *                clean io_reset only to do special mach_io_reset function. *                wlm <wlm@student.dlut.edu.cn> *//* Reset IO.  * Now only reset some Internal IO Register. * Every machine has a reset routine to init it's special registers. * wlm 2003/7/17 * *//* some machine need less number. e.g. s3c2440 only need DIVISOR = 1 to boot*/#define DIVISOR      (50)static int prescale = DIVISOR;voidio_reset (ARMul_State * state){	struct device_desc *dev;	int i;	for (i = 0; i < skyeye_config.mach->dev_count; i++) {		dev = skyeye_config.mach->devices[i];		if (dev->reset)			dev->reset (dev);	}	if(skyeye_config.mach->mach_io_reset)		skyeye_config.mach->mach_io_reset (state);	else		fprintf(stderr,"SKYEYE_ERR:mach_io_reset is NULL\n");}voidio_do_cycle (ARMul_State * state){	struct device_desc *dev;	int i;//teawater add DBCT_TEST_SPEED 2005.10.04---------------------------------------#ifdef DBCT_TEST_SPEED	state->instr_count++;#endif	//DBCT_TEST_SPEED//AJ2D--------------------------------------------------------------------------	prescale--;	if (prescale < 0) {		prescale = DIVISOR;		for (i = 0; i < skyeye_config.mach->dev_count; i++) {			dev = skyeye_config.mach->devices[i];			if (dev->update)				dev->update (dev);		}		skyeye_config.mach->mach_io_do_cycle (state);	}}unsigned charmem_read_char (ARMul_State * state, ARMword addr){	union	{		unsigned char buf[4];		ARMword w;	} tmp;	tmp.w = mem_read_word (state, addr & ~0x3);	if (state->bigendSig == HIGH)		//if (big_endian)		return (tmp.buf[3 - (addr & 0x3)]);	return (tmp.buf[addr & 0x3]);}voidmem_write_char (ARMul_State * state, ARMword addr, unsigned char c){	union	{		unsigned char buf[4];		ARMword w;	} tmp;	tmp.w = mem_read_word (state, addr & ~0x3);	if (state->bigendSig == HIGH)	/*big enddian? */		//if (big_endian)		tmp.buf[3 - (addr & 0x3)] = c;	else		tmp.buf[addr & 0x3] = c;	mem_write_word (state, addr & ~0x3, tmp.w);}/* Internal registers from 0x80000000 to 0x80002000.   We also define a "debug I/O" register thereafter. */ARMwordio_read_byte (ARMul_State * state, ARMword addr){	struct device_desc *dev;	ARMword data;	int i;	for (i = 0; i < skyeye_config.mach->dev_count; i++) {		dev = skyeye_config.mach->devices[i];		if (!dev->read_byte)			continue;		/* if we specify size=0, we don't check 		 * whether "addr" is in the range of address space of device.		 * */		if (dev->size == 0) {			if (dev->read_byte (dev, addr, (u8 *) & data) !=			    ADDR_NOHIT)				return data & 0xff;		}		else if ((addr >= dev->base)			 && (addr < (dev->base + dev->size))) {			if (dev->read_byte (dev, addr, (u8 *) & data) !=			    ADDR_NOHIT)				return data & 0xff;		}	}	return skyeye_config.mach->mach_io_read_byte (state, addr);}ARMwordio_read_halfword (ARMul_State * state, ARMword addr){	struct device_desc *dev;	ARMword data;	int i;	for (i = 0; i < skyeye_config.mach->dev_count; i++) {		dev = skyeye_config.mach->devices[i];		if (!dev->read_halfword)			continue;		/* if we specify size=0, we don't check 		 * whether "addr" is in the range of address space of device.		 * */		if (dev->size == 0) {			if (dev->read_halfword (dev, addr, (u16 *) & data) !=			    ADDR_NOHIT)				return data & 0xffff;		}		else if ((addr >= dev->base)			 && (addr < (dev->base + dev->size))) {			if (dev->read_halfword (dev, addr, (u16 *) & data) !=			    ADDR_NOHIT)				return data & 0xffff;		}	}	return skyeye_config.mach->mach_io_read_halfword (state, addr);}ARMwordio_read_word (ARMul_State * state, ARMword addr){	struct device_desc *dev;	ARMword data;	int i;	for (i = 0; i < skyeye_config.mach->dev_count; i++) {		dev = skyeye_config.mach->devices[i];		if (!dev->read_word)			continue;		/* if we specify size=0, we don't check 		 * whether "addr" is in the range of address space of device.		 * */		if (dev->size == 0) {			if (dev->read_word (dev, addr, (u32 *) & data) !=			    ADDR_NOHIT)				return data;		}		else if ((addr >= dev->base)			 && (addr < (dev->base + dev->size))) {			if (dev->read_word (dev, addr, (u32 *) & data) !=			    ADDR_NOHIT)				return data;		}	}	return skyeye_config.mach->mach_io_read_word (state, addr);}voidio_write_byte (ARMul_State * state, ARMword addr, ARMword data){	struct device_desc *dev;	int i;	for (i = 0; i < skyeye_config.mach->dev_count; i++) {		dev = skyeye_config.mach->devices[i];		if (!dev->write_byte)			continue;		/* if we specify size=0, we don't check 		 * whether "addr" is in the range of address space of device.		 * */		if (dev->size == 0) {			if (dev->write_byte (dev, addr, (u8) data) !=			    ADDR_NOHIT)				return;		}		else if ((addr >= dev->base)			 && (addr < (dev->base + dev->size))) {			if (dev->write_byte (dev, addr, (u8) data) !=			    ADDR_NOHIT)				return;		}	}	skyeye_config.mach->mach_io_write_byte (state, addr, data);}voidio_write_halfword (ARMul_State * state, ARMword addr, ARMword data){	struct device_desc *dev;	int i;	for (i = 0; i < skyeye_config.mach->dev_count; i++) {		dev = skyeye_config.mach->devices[i];		if (!dev->write_halfword)			continue;		/* if we specify size=0, we don't check 		 * whether "addr" is in the range of address space of device.		 * */		if (dev->size == 0) {			if (dev->write_halfword (dev, addr, (u16) data) !=			    ADDR_NOHIT)				return;		}		else if ((addr >= dev->base)			 && (addr < (dev->base + dev->size))) {			if (dev->write_halfword (dev, addr, (u16) data) !=			    ADDR_NOHIT)				return;		}	}	skyeye_config.mach->mach_io_write_halfword (state, addr, data);}voidio_write_word (ARMul_State * state, ARMword addr, ARMword data){	struct device_desc *dev;	int i;	for (i = 0; i < skyeye_config.mach->dev_count; i++) {		dev = skyeye_config.mach->devices[i];		if (!dev->write_word)			continue;		/* if we specify size=0, we don't check 		 * whether "addr" is in the range of address space of device.		 * */		if (dev->size == 0) {			if (dev->write_word (dev, addr, data) != ADDR_NOHIT)				return;		}		else if ((addr >= dev->base)			 && (addr < (dev->base + dev->size))) {			if (dev->write_word (dev, addr, data) != ADDR_NOHIT)				return;		}	}	skyeye_config.mach->mach_io_write_word (state, addr, data);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久9热精品视频| 一区二区三区中文字幕在线观看| 色婷婷亚洲综合| 成人福利在线看| 国产精品夜夜嗨| 国产一区二区91| 国产最新精品精品你懂的| 精品中文字幕一区二区| 国模无码大尺度一区二区三区| 激情久久五月天| 国产黄色成人av| 99re亚洲国产精品| 色偷偷久久一区二区三区| 欧美性高清videossexo| 777欧美精品| 欧美tickling挠脚心丨vk| 337p粉嫩大胆色噜噜噜噜亚洲 | 国产精品美女一区二区| 国产精品乱子久久久久| 国产精品家庭影院| 亚洲国产日韩a在线播放性色| 免费成人av在线播放| 国产盗摄一区二区| 91福利国产精品| 日韩你懂的在线播放| 国产精品乱子久久久久| 日韩国产欧美一区二区三区| 国产黄人亚洲片| 欧美色视频在线观看| 欧美mv日韩mv| 国产精品国产精品国产专区不片 | 欧美日韩国产中文| 精品理论电影在线观看 | 久久久久青草大香线综合精品| 国产精品热久久久久夜色精品三区 | 奇米在线7777在线精品| 盗摄精品av一区二区三区| 欧美色爱综合网| 中文字幕二三区不卡| 日韩精品电影在线观看| 91性感美女视频| 日韩欧美一卡二卡| 亚洲综合区在线| 国产成人午夜高潮毛片| 欧美一区二区三区四区五区| 国产精品成人一区二区三区夜夜夜| 午夜国产精品影院在线观看| 99精品视频一区| 国产午夜亚洲精品不卡| 日本aⅴ免费视频一区二区三区| 99re视频这里只有精品| 国产清纯在线一区二区www| 午夜精品久久久久影视| 波多野结衣中文一区| 国产日本亚洲高清| 狠狠色丁香婷婷综合| 欧美人牲a欧美精品| 艳妇臀荡乳欲伦亚洲一区| 9i在线看片成人免费| 欧美激情一区二区三区蜜桃视频| 美女网站色91| 欧美一区国产二区| 午夜成人在线视频| 欧美久久久影院| 亚洲国产精品久久艾草纯爱| 在线欧美日韩国产| 亚洲乱码国产乱码精品精98午夜 | 欧美日韩高清在线| 亚洲第一综合色| 欧美日精品一区视频| 亚洲一区日韩精品中文字幕| 色综合天天综合网天天狠天天| 欧美激情综合在线| www.欧美日韩| 亚洲色图在线播放| 色老头久久综合| 亚洲精品日韩专区silk| 色系网站成人免费| 一区二区三区在线观看欧美| 色菇凉天天综合网| 亚洲欧美日韩国产另类专区| 色综合久久天天综合网| 亚洲一区二区视频在线观看| 欧美性做爰猛烈叫床潮| 视频精品一区二区| 欧美成va人片在线观看| 久热成人在线视频| 国产日韩欧美一区二区三区综合| 国产一区二区不卡| 亚洲精品中文在线| 欧美一级专区免费大片| 国产成人a级片| 一区二区三区**美女毛片| 欧美日韩视频第一区| 美女精品一区二区| 国产日本一区二区| 在线一区二区观看| 久久精品72免费观看| 国产精品日产欧美久久久久| 欧美撒尿777hd撒尿| 国产精品小仙女| 亚洲一区二区综合| 久久嫩草精品久久久精品一| 99久久婷婷国产| 日韩va亚洲va欧美va久久| 久久久久久影视| 欧美怡红院视频| 国产成人精品一区二| 亚洲激情六月丁香| 精品国产一区二区精华| 91色婷婷久久久久合中文| 蜜臀精品一区二区三区在线观看| 国产网站一区二区三区| 欧美日韩黄色影视| 成人免费高清在线| 美腿丝袜亚洲三区| 亚洲精品国产精华液| 久久精品在线免费观看| 91精品国产麻豆国产自产在线| 国产成人免费av在线| 日韩av电影天堂| 亚洲乱码中文字幕| 国产日韩欧美精品一区| 91精品福利在线一区二区三区| 成人av电影在线网| 国产麻豆日韩欧美久久| 日本欧美韩国一区三区| 亚洲一区二区在线观看视频| 中文在线一区二区 | av成人免费在线| 国产在线一区二区综合免费视频| 亚洲一区二区三区四区五区中文| 国产欧美一区二区精品久导航 | 日韩午夜激情av| 色呦呦一区二区三区| 成人不卡免费av| 国产精品夜夜嗨| 国内精品视频666| 男男gaygay亚洲| 日本中文字幕一区二区视频| 亚洲精品免费看| 亚洲美女视频在线观看| 国产精品久久久久一区二区三区共| 欧美精品一区在线观看| 欧美一区二区三区喷汁尤物| 欧美日韩一区二区在线视频| 91精彩视频在线| 色婷婷av一区二区三区之一色屋| 成人v精品蜜桃久久一区| 成人综合在线视频| 国产suv一区二区三区88区| 国产精品一区专区| 国产一区二区三区| 国产成人综合在线| 国产91综合网| av电影在线不卡| 91捆绑美女网站| 欧美性大战久久| 欧美另类变人与禽xxxxx| 538prom精品视频线放| 精品人在线二区三区| 国产亚洲精品超碰| 亚洲视频一区二区在线| 一区二区三区免费在线观看| 亚洲午夜久久久久久久久久久| 偷窥国产亚洲免费视频| 捆绑紧缚一区二区三区视频| 国产一区二区h| 色综合久久99| 91精品国产麻豆国产自产在线 | 亚洲人成在线观看一区二区| 亚洲在线一区二区三区| 日韩av电影免费观看高清完整版 | 95精品视频在线| 在线观看亚洲a| 精品国产乱码久久久久久影片| 国产视频911| 亚洲综合免费观看高清完整版在线 | 亚洲国产激情av| 亚洲日穴在线视频| 日本三级亚洲精品| 成人理论电影网| 欧美精品日韩一本| 国产欧美精品一区| 亚洲gay无套男同| 国产激情视频一区二区在线观看| 99re热视频精品| 日韩三级在线观看| 一区二区三区四区在线免费观看| 日韩福利视频网| 99久久久久免费精品国产| 欧美剧在线免费观看网站| 国产精品毛片久久久久久久| 亚洲一二三区视频在线观看| 国产伦精品一区二区三区免费 | 蜜桃av一区二区三区电影| 成人av小说网| 精品国产欧美一区二区| 一区二区三区蜜桃| 成人黄页毛片网站|