如何在 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;
我是 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;