如何在AURIX TriCore微控制器上激活core 1和2?

如何在AURIX TriCore微控制器上激活core 1和2?,c,microcontroller,multicore,infineon,C,Microcontroller,Multicore,Infineon,我是编程TriCore MCU的新手。我试图让一个程序在MCU的所有三个核心上运行。我正在使用TC277 TriBoard和HighTec Free Entry工具链以及通用调试引擎。 以下是我正在使用的代码: int main() { switch (__mfcr(CPU_CORE_ID)) { case 0: { main_Core0(); break; } ca

我是编程TriCore MCU的新手。我试图让一个程序在MCU的所有三个核心上运行。我正在使用TC277 TriBoard和HighTec Free Entry工具链以及通用调试引擎。 以下是我正在使用的代码:

int main()
{
    switch (__mfcr(CPU_CORE_ID))
    {
        case 0:
        {
            main_Core0();
            break;
        }

        case 1:
        {
            main_Core1();
            break;
        }

        case 2:
        {
            main_Core2();
            break;
        }
    }

    return (0);
}

当我开始调试时,我看到只有Core0在运行,而Core1和2保持“非活动”。有人能告诉我为什么他们不运行,以及如何解决这个问题吗?谢谢。

在系统启动后,只有core 0在运行,这是AURIX的正常行为。 通常,编译器的启动代码负责激活其他内核。检查编译器文档,了解如何做到这一点。我自己不使用Hitech工具链,所以我不能帮你

如果必须自己激活core,则必须写入core调试状态寄存器DBGSR的值2以停止字段:

CPUx_DBGSR.B.HALT=2;

您是否可以使用支持openmp的编译器?我没有找到任何可以与Infineon MCUsIt一起使用的编译器。谢谢我还必须将程序计数器设置为_开始标签,使其在多核Tricore系统中执行代码,共享哪些核心寄存器,哪些是特定于核心的(如核心ID)?