我是 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 保持“不活动”状态。有人可以解释一下为什么他们不运行以及如何解决这个问题吗?谢谢。
最佳答案
系统启动后,只有核心 0 正在运行,这是 AURIX 的正常行为。 通常,编译器的启动代码负责激活其他内核。检查编译器文档以了解如何执行此操作。我自己不使用 Hitech 工具链,所以我无法帮助您。
如果您必须自己激活内核,则必须将值2写入内核调试状态寄存器DBGSR的HALT字段:
CPUx_DBGSR.B.HALT=2;
关于c - 如何激活 AURIX TriCore 微 Controller 上的内核 1 和 2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50981845/