TMS320F28377D: CPU1控制eMIF1的CS3空间与 FPGA异步通讯,CPU2控制eMIF1的CS2空间与AD7616模拟采集芯片通讯,双核同时使用时数据有异常,单核CPU使用时正常

Part Number: TMS320F28377D
eMIF初始化函数如下,请帮忙指出问题,给出解决方案,谢谢!
    
void InitEMIF(void)
{
    EMIF_AsyncTimingParams tParamAsync;
    EMIF_SyncConfig sdConfig;
    EMIF_SyncTimingParams tParam;
    /********************************EMIF1 FOR FPGA************************************************/

    // Configure to run EMIF1 on full Rate. (EMIF1CLK = CPU1SYSCLK)
    //
    SysCtl_setEMIF1ClockDivider(SYSCTL_EMIF1CLK_DIV_2); // half rate

    //
    // Grab EMIF1 For CPU1.
    //
    EMIF_selectMaster(EMIF1CONFIG_BASE, EMIF_MASTER_CPU1_NG);//for ad7616  

    //
    // Disable Access Protection. (CPU_FETCH/CPU_WR/DMA_WR)
    //
    EMIF_setAccessProtection(EMIF1CONFIG_BASE, 0x0);

    //
    // Commit the configuration related to protection. Till this bit remains
    // set, contents of EMIF1ACCPROT0 register can't be changed.
    //
    EMIF_commitAccessConfig(EMIF1CONFIG_BASE);

    //
    // Lock the configuration so that EMIF1COMMIT register can't be changed
    // any more.
    //
    EMIF_lockAccessConfig(EMIF1CONFIG_BASE);

    //
    // Configure GPIO pins for EMIF1.
    //
    setupEMIF1PinmuxAsync16Bit();
    //
    // Configures Normal Asynchronous Mode of Operation.
    //
    // CS3 selected
    EMIF_setAsyncMode(EMIF1_BASE, EMIF_ASYNC_CS3_OFFSET, EMIF_ASYNC_NORMAL_MODE);

    EMIF_setAsyncMode(EMIF1_BASE, EMIF_ASYNC_CS2_OFFSET, EMIF_ASYNC_NORMAL_MODE);//for ad7616

    //
    // Disables Extended Wait Mode.
    //
    // CS3 selected
    EMIF_disableAsyncExtendedWait(EMIF1_BASE, EMIF_ASYNC_CS3_OFFSET);  // 使用
   
    EMIF_disableAsyncExtendedWait(EMIF1_BASE, EMIF_ASYNC_CS2_OFFSET);//for ad7616

    //
    // Configure EMIF1 Data Bus Width.
    //
    // CS3 selected
    EMIF_setAsyncDataBusWidth(EMIF1_BASE, EMIF_ASYNC_CS3_OFFSET, EMIF_ASYNC_DATA_WIDTH_16);

    EMIF_setAsyncDataBusWidth(EMIF1_BASE, EMIF_ASYNC_CS2_OFFSET, EMIF_ASYNC_DATA_WIDTH_16);//for ad7616

    // PengXL
    // Configure the access timing for CS3 space.
    //
    tParamAsync.rSetup = 3;    //读设置时间
    tParamAsync.rStrobe = 8;   //读选通宽度
    tParamAsync.rHold = 2;     //读保持时间
    tParamAsync.turnArnd = 0;  //转向时间
    tParamAsync.wSetup = 2;    //写设置时间
    tParamAsync.wStrobe = 3;   //写选通宽度
    tParamAsync.wHold = 2;     //写保持时间
    EMIF_setAsyncTimingParams(EMIF1_BASE, EMIF_ASYNC_CS3_OFFSET, &tParamAsync);


    //
    // Configure the access timing for CS2 space.
    //
    tParamAsync.rSetup = 3;
    tParamAsync.rStrobe = 10;
    tParamAsync.rHold = 2;
    tParamAsync.turnArnd = 4;
    tParamAsync.wSetup = 3;
    tParamAsync.wStrobe = 6;
    tParamAsync.wHold = 2;
    EMIF_setAsyncTimingParams(EMIF1_BASE, EMIF_ASYNC_CS2_OFFSET, &tParamAsync);//for ad7616

    //
    // Adding some delay.
    //
    int i;
    for(i = 0; i < 123; i++)
    {
        asm("   NOP");
    }

}
x 出现错误。请重试或与管理员联系。