📄 skyeye_mach_omap5912.c
字号:
{ 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 + -