Я программирую плату обнаружения STM32 Cortex M0 (32F0308DISCOVERY), используя OpenOCD, arm-none-eabi-gcc и gdb. Мне было интересно, есть ли какой-нибудь простой способ записи отладочных сообщений через SWD. Я читал об опции полухостинга, но, похоже, для этого нужно добавить newlib или другие большие библиотеки. (Доступно только 64 КБ флэш-памяти.) Есть ли более легкий способ записи текста через SWD или использование UART - единственный практичный вариант?
15
Ответы:
Спасибо за указатели, Маркт и Крис-Страттон. Вариант полухостинга оказался довольно простым. Мне удалось найти источник для пары простых процедур регистрации, которые могут отправлять сообщения на консоль OpenOCD. Я опубликую их здесь, так как (i) они требуют некоторой модификации для работы и (ii) я думаю, что эту информацию не так просто найти людям, которые только начинают работать.
Во- первых, D - код здесь легко приспосабливается предоставить следующую функцию C:
Пример вызова send_command для записи строки в консоль OpenOCD:
Во- вторых, функция putChar дается в комментариях здесь работает отлично, за исключением того, что мне пришлось добавить «#» перед тем 0x03:
Чтобы посмотреть на вывод этих функций, я сначала запускаю OpenOCD, затем подключаюсь с помощью arm-none-eabi-gdb следующим образом:
Обратите внимание, что сообщения появляются в stdout процесса OpenOCD, а не в консоли GDB.
источник
putchar
так просто, какvoid putchar(char c) { send_command(3,&c); }