TMS320F28377D: 对EMIF的写,设置成16bit,但是只能

Part Number: TMS320F28377D

通过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;

}