This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C6678多核cache配置与外设接口共享使用



1 《C66x CorePac User's Guide》中看到L1PCFG寄存器地址为0x01840020,C6678内8个 core的cache配置都是按这个寄存器统一配置吗?各core能否单独进行有差异的cache配置?

2 在C6678中UART只有一个,以下使用场景是否合理?在core0中进行UART初始化配置,然后各 core可以互斥地占用串口来进行数据收发。

  • 1 每个core上都有独立的一份寄存器用于cache的配置,地址都是一样的,所以只能每个core自己配置;

    2 可以。

  • 关于问题1同样可以适用于corepac内中断控制器的相关配置吗?如CorePac 内部的中断复用寄存器(Interrupt Mux Register)也是每个core内有单独一套,只是地址一致而已?

  • Andy Yin1 你好,在官方提供的GEL文件内看到:

    // Only core 0 can set these
    if (DNUM == 0)
    {
    for (count = 0; count < PLL_REINIT_MAX_COUNT; count++) {
    // Setup Pll1 DSP @ TARGET_FREQ
    status = Init_PLL(PLL1_M, PLL1_D);

    if (status == -1) {
    GEL_TextOut( "Error in Setting up main PLL, please power cycle the board and re-run Global Default Setup...\n" );
    while (1);
    }

    if (!count) {

    // Setup all Power Domains on
    Set_Psc_All_On( );
    }
    // Setup Pll3 pass clk @ 1050 MHz
    Init_Pll3(PLLM_PASS, PLLD_PASS);

    // Setup Pll2 DDR3 PLL @ 667 MHz
    Init_Pll2(PLLM_DDR, PLLD_DDR);

    GEL_TextOut( "DDR begin (1333 auto)\n");
    xmc_setup();
    ddr3_setup_auto_lvl_1333(0);
    GEL_TextOut( "DDR done\n");

    if(ddr3_memory_test() == 0) {
    break;
    }

    }

    if (count == PLL_REINIT_MAX_COUNT) {
    GEL_TextOut( "PLL and DDR Initialization failed ...\n");
    } else {
    GEL_TextOut( "PLL and DDR Initialization completed(%d) ...\n",,,,, count);
    }

    // Configure SGMII SERDES
    configSGMIISerdes();

    GEL_TextOut( "Enabling EDC ...\n");
    EnableEDC_OneforAll();
    GEL_TextOut( "Enabling EDC ...Done \n");

    GEL_TextOut( "Configuring CPSW ...\n");
    setCpSwConfig();
    GEL_TextOut( "Configuring CPSW ...Done \n");
    }

    想确认:

    上面的实现是因为方便调试才选定core0来进行部分初始化配置,还是芯片内部设计限定只能由core0来完成这些芯片模块与外设的初始化配置?