void EMIF_Init(void)
{
EALLOW;
ClkCfgRegs.PERCLKDIVSEL.bit.EMIF1CLKDIV = 0x1;
EDIS;
EALLOW;
//Disable Access Protection (CPU_FETCH/CPU_WR/DMA_WR)
Emif1ConfigRegs.EMIF1ACCPROT0.all = 0x1; // DMA写保护允许 EMIF1MSEL:找不到寄存器配置说明
// Commit the configuration related to protection. Till this bit remains set
// content of EMIF1ACCPROT0 register can't be changed.
Emif1ConfigRegs.EMIF1COMMIT.all = 0x1;
// Lock the configuration so that EMIF1COMMIT register can't be
// changed any more.
Emif1ConfigRegs.EMIF1LOCK.all = 0x1; // 锁定写入保护
EDIS;
Emif1Regs.ASYNC_CS2_CR.bit.ASIZE =1; // 16Bit Memory Interface
Emif1Regs.ASYNC_CS2_CR.bit.R_HOLD =14; // Read Hold time of 1 Emif Clock
Emif1Regs.ASYNC_CS2_CR.bit.R_SETUP =6; // Read Strobe time of 4 Emif Clock
Emif1Regs.ASYNC_CS2_CR.bit.R_STROBE=6; // Read Setup time of 1 Emif Clock
Emif1Regs.ASYNC_CS2_CR.bit.W_HOLD =14; // Write Hold time of 1 Emif Clock
Emif1Regs.ASYNC_CS2_CR.bit.W_SETUP =6; // Write Strobe time of 1 Emif Clock
Emif1Regs.ASYNC_CS2_CR.bit.W_STROBE=6; // Write Setup time of 1 Emif Clock
Emif1Regs.ASYNC_CS2_CR.bit.TA =8; // Turn Around time of 2 Emif Clock
Emif1Regs.ASYNC_CS2_CR.bit.SS =1; // EMIF_ASYNC_SS_EnABLE
Emif1Regs.ASYNC_CS2_CR.bit.EW =1; // Extended Wait Enable.
Emif1Regs.INT_MSK_SET.bit.AT_MASK_SET = 1;
setup_emif1_pinmux_async_16bit(0);
}