Как активировать ядра 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;
Другие вопросы по тегам