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

How to activate core 1 and 2 on AURIX TriCore microcontrollers?

我是 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 是 运行,而 Core 1 和 2 仍然是 "inactive"。有人可以向我解释为什么他们不 运行 以及如何解决这个问题吗?谢谢

AURIX 的正常行为是在系统启动后只有核心 0 运行。 通常,编译器的启动代码负责激活其他内核。检查您的编译器文档以了解如何执行此操作。我自己不使用 Hitech 工具链,所以我无法帮助您。

如果您必须自己激活内核,则必须将值 2 写入内核调试状态寄存器 DBGSR 的 HALT 字段:

CPUx_DBGSR.B.HALT=2;