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

📄 skyeye_mach_omap5912.c

📁 skyeye for pxa270
💻 C
📖 第 1 页 / 共 3 页
字号:
			{			int i;			i = omap5912_io.ic.mpu_l1_sir_irq_code;			//printf("sirirq i = %x\n", i);			omap5912_io.ic.mpu_l1_itr &= ~(1 << i);			}			#endif			omap5912_io.ic.mpu_l1_control = data;			//printf("write mpu_l1 control data = %x\n", data);			break;		case MPU_L1_ISR:			omap5912_io.ic.mpu_l1_isr = data;			//printf("write mpu_l1 isr data = %x\n", data);			break;		case MPU_L1_ENHANCEED_CNTL:			omap5912_io.ic.mpu_l1_enhanceed_cntl = data;			//printf("write mpu_l1 enhaced data = %x\n", data);			break;		/** gpio1*/		case GPIO1_SYSCONFIG:			omap5912_io.gpio[0].gpio_sysconfig = data;			break;		case GPIO1_IRQSTATUS1:			omap5912_io.gpio[0].gpio_irqstatus1 = data;			break;		case GPIO1_IRQENABLE1:			omap5912_io.gpio[0].gpio_irqenable1 = data;			break;		case GPIO1_IRQSTATUS2:			omap5912_io.gpio[0].gpio_irqstatus2 = data;			break;		case GPIO1_IRQENABLE2:			omap5912_io.gpio[0].gpio_irqenable2 = data;			break;		case GPIO1_WAKEUPENABLE:			omap5912_io.gpio[0].gpio_wakeupenable = data;			break;	//	case GPIO1_DATAIN:	//		omap5912_io.gpio[0].gpio_datain = data;	//		break;		case GPIO1_DATAOUT:			omap5912_io.gpio[0].gpio_dataout = data;			break;		case GPIO1_DIRECTION:			omap5912_io.gpio[0].gpio_direction = data;			break;		case GPIO1_EDGE_CTRL1:			omap5912_io.gpio[0].gpio_edge_ctrl1 = data;			break;		case GPIO1_EDGE_CTRL2:			omap5912_io.gpio[0].gpio_edge_ctrl2 = data;			break;		case GPIO1_CLEAR_IRQENABLE1:			omap5912_io.gpio[0].gpio_clear_irqenable1 = data;			break;		case GPIO1_CLEAR_IRQENABLE2:			omap5912_io.gpio[0].gpio_clear_irqenable2 = data;			break;		case GPIO1_CLEAR_WAKEUPENA:			omap5912_io.gpio[0].gpio_clear_wakeupena = data;			break;		case GPIO1_CLEAR_DATAOUT:			omap5912_io.gpio[0].gpio_clear_dataout = data;			break;		case GPIO1_SET_IRQENABLE1:			omap5912_io.gpio[0].gpio_set_irqenable1 = data;			break;		case GPIO1_SET_IRQENABLE2:			omap5912_io.gpio[0].gpio_set_irqenable2 = data;			break;		case GPIO1_SET_WAKEUPENA:			omap5912_io.gpio[0].gpio_set_wakeupena = data;			break;		case GPIO1_SET_DATAOUT:			omap5912_io.gpio[0].gpio_set_dataout = data;			break;			/** gpio2*/		case GPIO2_SYSCONFIG:			omap5912_io.gpio[1].gpio_sysconfig = data;			break;		case GPIO2_IRQSTATUS1:			omap5912_io.gpio[1].gpio_irqstatus1 = data;			break;		case GPIO2_IRQENABLE1:			omap5912_io.gpio[1].gpio_irqenable1 = data;			break;		case GPIO2_IRQSTATUS2:			omap5912_io.gpio[1].gpio_irqstatus2 = data;			break;		case GPIO2_IRQENABLE2:			omap5912_io.gpio[1].gpio_irqenable2 = data;			break;		case GPIO2_WAKEUPENABLE:			omap5912_io.gpio[1].gpio_wakeupenable = data;			break;		case GPIO2_DATAOUT:			omap5912_io.gpio[1].gpio_dataout = data;			break;		case GPIO2_DIRECTION:			omap5912_io.gpio[1].gpio_direction = data;			break;		case GPIO2_EDGE_CTRL1:			omap5912_io.gpio[1].gpio_edge_ctrl1 = data;			break;		case GPIO2_EDGE_CTRL2:			omap5912_io.gpio[1].gpio_edge_ctrl2 = data;			break;		case GPIO2_CLEAR_IRQENABLE1:			omap5912_io.gpio[1].gpio_clear_irqenable1 = data;			break;		case GPIO2_CLEAR_IRQENABLE2:			omap5912_io.gpio[1].gpio_clear_irqenable2 = data;			break;		case GPIO2_CLEAR_WAKEUPENA:			omap5912_io.gpio[1].gpio_clear_wakeupena = data;			break;		case GPIO2_CLEAR_DATAOUT:			omap5912_io.gpio[1].gpio_clear_dataout = data;			break;		case GPIO2_SET_IRQENABLE1:			omap5912_io.gpio[1].gpio_set_irqenable1 = data;			break;		case GPIO2_SET_IRQENABLE2:			omap5912_io.gpio[1].gpio_set_irqenable2 = data;			break;		case GPIO2_SET_WAKEUPENA:			omap5912_io.gpio[1].gpio_set_wakeupena = data;			break;		case GPIO2_SET_DATAOUT:			omap5912_io.gpio[1].gpio_set_dataout = data;			break;			/** gpio2*/		case GPIO3_SYSCONFIG:			omap5912_io.gpio[2].gpio_sysconfig = data;			break;		case GPIO3_IRQSTATUS1:			omap5912_io.gpio[2].gpio_irqstatus1 = data;			break;		case GPIO3_IRQENABLE1:			omap5912_io.gpio[2].gpio_irqenable1 = data;			break;		case GPIO3_IRQSTATUS2:			omap5912_io.gpio[2].gpio_irqstatus2 = data;			break;		case GPIO3_IRQENABLE2:			omap5912_io.gpio[2].gpio_irqenable2 = data;			break;		case GPIO3_WAKEUPENABLE:			omap5912_io.gpio[2].gpio_wakeupenable = data;			break;		case GPIO3_DATAOUT:			omap5912_io.gpio[2].gpio_dataout = data;			break;		case GPIO3_DIRECTION:			omap5912_io.gpio[2].gpio_direction = data;			break;		case GPIO3_EDGE_CTRL1:			omap5912_io.gpio[2].gpio_edge_ctrl1 = data;			break;		case GPIO3_EDGE_CTRL2:			omap5912_io.gpio[2].gpio_edge_ctrl2 = data;			break;		case GPIO3_CLEAR_IRQENABLE1:			omap5912_io.gpio[2].gpio_clear_irqenable1 = data;			break;		case GPIO3_CLEAR_IRQENABLE2:			omap5912_io.gpio[2].gpio_clear_irqenable2 = data;			break;		case GPIO3_CLEAR_WAKEUPENA:			omap5912_io.gpio[2].gpio_clear_wakeupena = data;			break;		case GPIO3_CLEAR_DATAOUT:			omap5912_io.gpio[2].gpio_clear_dataout = data;			break;		case GPIO3_SET_IRQENABLE1:			omap5912_io.gpio[2].gpio_set_irqenable1 = data;			break;		case GPIO3_SET_IRQENABLE2:			omap5912_io.gpio[2].gpio_set_irqenable2 = data;			break;		case GPIO3_SET_WAKEUPENA:			omap5912_io.gpio[2].gpio_set_wakeupena = data;			break;		case GPIO3_SET_DATAOUT:			omap5912_io.gpio[2].gpio_set_dataout = data;			break;			/** gpio4*/		case GPIO4_SYSCONFIG:			omap5912_io.gpio[3].gpio_sysconfig = data;			break;		case GPIO4_IRQSTATUS1:			omap5912_io.gpio[3].gpio_irqstatus1 = data;			break;		case GPIO4_IRQENABLE1:			omap5912_io.gpio[3].gpio_irqenable1 = data;			break;		case GPIO4_IRQSTATUS2:			omap5912_io.gpio[3].gpio_irqstatus2 = data;			break;		case GPIO4_IRQENABLE2:			omap5912_io.gpio[3].gpio_irqenable2 = data;			break;		case GPIO4_WAKEUPENABLE:			omap5912_io.gpio[3].gpio_wakeupenable = data;			break;		case GPIO4_DATAOUT:			omap5912_io.gpio[3].gpio_dataout = data;			break;		case GPIO4_DIRECTION:			omap5912_io.gpio[3].gpio_direction = data;			break;		case GPIO4_EDGE_CTRL1:			omap5912_io.gpio[3].gpio_edge_ctrl1 = data;			break;		case GPIO4_EDGE_CTRL2:			omap5912_io.gpio[3].gpio_edge_ctrl2 = data;			break;		case GPIO4_CLEAR_IRQENABLE1:			omap5912_io.gpio[3].gpio_clear_irqenable1 = data;			break;		case GPIO4_CLEAR_IRQENABLE2:			omap5912_io.gpio[3].gpio_clear_irqenable2 = data;			break;		case GPIO4_CLEAR_WAKEUPENA:			omap5912_io.gpio[3].gpio_clear_wakeupena = data;			break;		case GPIO4_CLEAR_DATAOUT:			omap5912_io.gpio[3].gpio_clear_dataout = data;			break;		case GPIO4_SET_IRQENABLE1:			omap5912_io.gpio[3].gpio_set_irqenable1 = data;			break;		case GPIO4_SET_IRQENABLE2:			omap5912_io.gpio[3].gpio_set_irqenable2 = data;			break;		case GPIO4_SET_WAKEUPENA:			omap5912_io.gpio[3].gpio_set_wakeupena = data;			break;		case GPIO4_SET_DATAOUT:			omap5912_io.gpio[3].gpio_set_dataout = data;			break;			case ULPD_CLOCK_CTRL:			omap5912_io.mpu_cfg.ulpd_clock_ctrl = data;			break;		case SOFT_REQ_REG:		 	omap5912_io.mpu_cfg.soft_req_reg = data;			break;		case SOFT_REQ_REG2:		 	omap5912_io.mpu_cfg.soft_req_reg2 = data;			break;		case MOD_CONF_CTRL_0:			omap5912_io.mpu_cfg.mod_conf_ctrl_0 = data;			break;		case FUNC_MUX_CTRL_10:			omap5912_io.mpu_cfg.func_mux_ctrl_10 = data;			break;		case PULL_DWN_CTRL_4:			omap5912_io.mpu_cfg.pull_dwn_ctrl_4 = data; 			break;		case EMIFS_CS1_CONFIG:			omap5912_io.mpu_cfg.emifs_cs1_config = data;			break;		case ARM_CKCTL:			omap5912_io.mpu_cfg.arm_ckctl = data;			break;		case ARM_IDLECT1:			omap5912_io.mpu_cfg.arm_idlect1 = data;			break;		case ARM_IDLECT2:			omap5912_io.mpu_cfg.arm_idlect2 = data;			break;		case ARM_RSTCT1:			omap5912_io.mpu_cfg.arm_rstct1 = data;			break;		case ARM_RSTCT2:			omap5912_io.mpu_cfg.arm_rstct2 = data;			break;		case ARM_SYSST:			omap5912_io.mpu_cfg.arm_sysst = data;			break;		case DPLL1_CTL_REG:			omap5912_io.mpu_cfg.dpll1_ctl_reg = data;			break;		default:			//SKYEYE_DBG ("io_write_word(0x%08x) = 0x%08x\n", addr, data);        	       //fprintf(stderr, "ERROR: %s(0x%08x) = 0x%08x\n", __FUNCTION__, addr ,data);			break;	}//?switch_end	return;			 }voidomap5912_io_write_byte (ARMul_State * state, ARMword addr, ARMword data){	return omap5912_io_write_word(state, addr, (data & 0xff));	//return omap5912_io_write_word(state, addr, data);}voidomap5912_io_write_halfword (ARMul_State * state, ARMword addr, ARMword data){	return omap5912_io_write_word(state, addr, (data & 0xffff));	//return omap5912_io_write_word(state, addr, data);}ARMwordomap5912_io_read_word (ARMul_State * state, ARMword addr){	ARMword data = -1;	if ((addr >= UART1_RHR) && (addr <= UART1_WER))	{		switch(addr)		{				/**uart 1*/		case UART1_RHR:		//	omap5912_io.uart.iir &= ~(0x1);			data = omap5912_io.uart.rhr & 0xff;			omap5912_io.uart.lsr = (0x1);			//printf("read_uart, read_num%x %x\n", data, read_num);			//printf("uart1_lsr read %x\n", omap5912_io.uart.lsr);			//data = omap5912_io.uart.dll;			break;		case UART1_IER:			data = omap5912_io.uart.ier;		//	printf("uart1_ier read %x\n", data);			//data = omap5912_io.uart.dlh;			break;		case UART1_IIR:			data = omap5912_io.uart.iir;		//	omap5912_io.uart.lsr = 0x20;		//	omap5912_io.uart.iir = 0x1;		//	omap5912_io.uart.iir = 0x0;		//printf("uart1_iir read %x\n", data);			//data = omap5912_io.uart.efr;			break;		case UART1_LCR:			data = omap5912_io.uart.lcr;			//printf("uart1_lcr read %x\n", data);			break;		case UART1_MCR:			data = omap5912_io.uart.mcr;			//printf("uart1_mcr read %x\n", data);			//data = omap5912_io.uart.xon1;			break;		case UART1_LSR:			data = omap5912_io.uart.lsr;			//	data = omap5912_io.uart.xon2;			if (data & 0x60)			{				//omap5912_io.uart.iir = THR_INT;				//omap5912_io.uart.ier = 0x2;			}			if (data & 0x1)			{				//omap5912_io.uart.iir = RHR_INT;				//omap5912_io.uart.ier = 0x2;			}		//	printf("uart1_lsr read %x\n", data);			break;		case UART1_MSR:			data = omap5912_io.uart.msr;			//printf("uart1_msr read %x\n", data);			//data = omap5912_io.uart.tcr;			//data = omap5912_io.uart.xoff1;			break;		case UART1_SPR:			data = omap5912_io.uart.spr;			//data = omap5912_io.uart.tlr;			//data = omap5912_io.uart.xoff2;			break;		case UART1_MDR1:			data = omap5912_io.uart.mdr1;			break;		case UART1_MDR2:			data = omap5912_io.uart.mdr2;			break;		case UART1_SFLSR:			data = omap5912_io.uart.sflsr;			break;		case UART1_RESUME:			data = omap5912_io.uart.resume;			break;		case UART1_SFREGL:			data = omap5912_io.uart.sfregl;			break;		case UART1_SFREGH:			data = omap5912_io.uart.sfregh;			break;		case UART1_UASR:			data = omap5912_io.uart.uasr;			//data = omap5912_io.uart.blr;			break;		case UART1_ACREG:			data = omap5912_io.uart.acreg;			break;		case UART1_SCR:			data = omap5912_io.uart.scr;			break;		case UART1_SSR:			data = omap5912_io.uart.ssr;			break;		case UART1_EBLR:			data = omap5912_io.uart.eblr;			break;		case UART1_MVR:			data = omap5912_io.uart.mvr;			break;		case UART1_SYSC:			data = omap5912_io.uart.sysc;			break;		case UART1_SYSS:			data = omap5912_io.uart.syss;			break;		case UART1_WER:			data = omap5912_io.uart.wer;			break;		default:			break;		}//?endswitch			return data;	}	if ((addr >= MPU_L1_ILR0) && (addr <=MPU_L1_ILR31))	{		int offset = (addr - MPU_L1_ILR0)/4;		//printf("read mpu l1 ilr[%d] 0x%x\n",offset,omap5912_io.ic.mpu_l1_ilr[offset]);		return omap5912_io.ic.mpu_l1_ilr[offset];	}	if ((addr >= MPU_L2_ILR0) && (addr <=MPU_L2_ILR31))	{		int offset = (addr - MPU_L2_ILR0)/4;		return omap5912_io.ic.mpu_l2_ilr[offset];	}	if ((addr >= MPU_L2_ILR0_S1) && (addr <=MPU_L2_ILR31_S1))	{		int offset = (addr - MPU_L2_ILR0_S1)/4;		return omap5912_io.ic.mpu_l2_ilr_s1[offset];	}	if ((addr >= MPU_L2_ILR0_S2) && (addr <=MPU_L2_ILR31_S2))	{		int offset = (addr - MPU_L2_ILR0_S2)/4;		return omap5912_io.ic.mpu_l2_ilr_s2[offset];	}	if ((addr >= MPU_L2_ILR0_S3) && (addr <=MPU_L2_ILR31_S3))	{		int offset = (addr - MPU_L2_ILR0_S3)/4;		return omap5912_io.ic.mpu_l2_ilr_s3[offset];	}

⌨️ 快捷键说明

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