Комментарии 17
Очень любопытно, особенно asm(«BKPT #0»); возьму на вооружение. Ваш код UART контрастирует с кодом UART из соседней статьи.
+1
Так тот код студенты писали.
0
То преподавателей писал
0
Вам обязательно быть токсичными засранцами?
+2
Нет, но правда она такая.
0
Правда о том, что ты докопался до забора, автор той статьи тебя не понял и ты теперь ходишь и рассказываешь даже в соседних темах какой он неразумный? На твой вопрос, к слову, дальше дали ответ, а встречный вопрос ты проигнорировал. Ту статью я считаю достаточно качественной, а твоё поведение (и ещё пары товарищей из комментов) — неадекватным и деструктивным.
0
Идея интересная, буду ждать продолжения!
Пара ремарок:
Spoiler header
Если вы пользуетесь HAL'ом, то вы автоматически пользуетесь и библиотекой CMSIS, которая дает следующие возможности:
- вместо ассемблерной вставки можно использовать псевдоним __BKPT; аналогичные псевдонимы есть для большинства ассемблерных команд
- адреса отладочных регистров можно не определять самостоятельно, к ним есть доступ через "структуру" CoreDebug —
CoreDebug->DEMCR
, например
+3
Жду продолжения. Хорошо бы рассмотреть, что вообще можно делать в прерывании DebugMon, а то бесконечная печать восклицательных знаков пока не сильно отличается от такой же печати в коде самой прошивки.
Как я понимаю, в прерывании можно реализовать свой протокол для общения с самопальным отладчиком на компьютере, включая просмотр содержимого памяти и регистров?
0
Находим адрес любой инструкции в цикле функции main средствами IDE и активируем точку останова:
FP->FP_COMP[0] = 0x080017CC | 1; // адрес середины бесконечного цикла = 0x080017CC
И так при каждой компиляции программы узнавать через отладку адреса всех нужных точек остановки? Не проще ли breakpoint поставить? Ну или можно как-то «автоматизировать» выдергивание адресов нужных инструкций?
P.S. DebugMon на самом деле идеально не для инструкций использовать, а для переменных, чьи адреса всегда известны. Жду продолжения.
0
Ожидал статью про то, как прикрутить gdb агент...
0
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
Отладка микроконтроллеров ARM Cortex-M по UART