通过EMIF接口的写SRAM,设置成16bit,但是只能写入32位,高位直接变成0x0000;
CS3的配置代码
Emif1Regs.ASYNC_CS3_CR.all = (EMIF_ASYNC_ASIZE_16 | // 16Bit Memory // Interface EMIF_ASYNC_TA_1 | // Turn Around time // of 2 Emif Clock EMIF_ASYNC_RHOLD_1 | // Read Hold time // of 1 Emif Clock EMIF_ASYNC_RSTROBE_4 | // Read Strobe time // of 4 Emif Clock EMIF_ASYNC_RSETUP_1 | // Read Setup time // of 1 Emif Clock EMIF_ASYNC_WHOLD_1 | // Write Hold time // of 1 Emif Clock EMIF_ASYNC_WSTROBE_3 | // Write Strobe time // of 1 Emif Clock EMIF_ASYNC_WSETUP_1 | // Write Setup time // of 1 Emif Clock EMIF_ASYNC_EW_DISABLE | // Extended Wait // Disable. EMIF_ASYNC_SS_DISABLE // Strobe Select Mode // Disable. );
写代码
void mem_write_data_16b(Uint32 start_addr, Uint16 mem_data) { // //Write data short // long *XMEM_ps; XMEM_ps = (long *)start_addr; *XMEM_ps = mem_data; }