Я начинаю использовать функцию SWD на моей плате обнаружения STM32.Я перенаправил вывод трассировки openocd в текстовый файл (потому что я не нашел хорошего монитора SWD для Linux).Я не знаю, почему я получаю два символа, когда отправляю только один.
В моем выходном файле каждому символу предшествует различный код ASCII (в основном без возможности печати).Этот предшествующий код является постоянным из-за порта.Например:
Port 0:
0x01 [Character] 0x01 [Character] etc.
Port 1:
0x09 [Character] 0x09 [Character] etc.
Port 2:
0x11 [Character] 0x11 [Character] etc.
Port 3:
0x19 [Character] 0x19 [Character] etc.
В коде github я нахожу, кто использует [предыдущий код] >> 3 формулы для получения номера порта.Это работает.
Я использую утилиту CubeMX & HAL, например:
ITM->PORT[portNum].u8 = (uint8_t)ch;
для отправки символа "ch".
Почему мне нужно использовать байтовую операцию?Этот предшествующий код имеет другую информацию, кроме номера порта?Я пытаюсь финансировать это в документации, но в каждом примере используется монитор ST
. Я пойму, что такое точный код в SWD?