⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 armflash.c

📁 skyeye-1.2-RC7-3的源代码
💻 C
字号:
#include <sys/time.h>#include <sys/types.h>#include <unistd.h>//koodailar add for mingw 2005.12.18 ----------------------------------------#ifdef __MINGW32__#include "arch/arm/common/armdefs.h"#else#include "armdefs.h"#endif// end ----------------------------------------------------------------------ARMwordflash_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;		}	}}ARMwordflash_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;		}	}}ARMwordflash_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;		}	}}voidflash_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;		}	}}voidflash_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;		}	}}voidflash_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;		}	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -