Как активировать ядра 1 и 2 на микроконтроллерах AURIX TriCore?
Я новичок в программировании микроконтроллеров TriCore. Я пытаюсь запустить программу на всех трех ядрах MCU. Я использую TC277 TriBoard и набор инструментов HighTec Free Entry с Universal Debug Engine. Вот код, который я использую:
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 остаются "неактивными". Может кто-нибудь объяснить мне, почему они не работают и как это исправить? Благодарю.
1 ответ
Это нормальное поведение AURIX, когда после запуска системы работает только ядро 0. Обычно, код запуска вашего компилятора отвечает за активацию других ядер. Проверьте документацию вашего компилятора о том, как это сделать. Я сам не пользуюсь набором инструментов Hitech, поэтому не могу вам с этим помочь.
Если вам нужно активировать ядра самостоятельно, вы должны записать значение 2 в поле HALT регистра состояния отладки ядра DBGSR:
CPUx_DBGSR.B.HALT=2;