Инструкция точки останова внутри кода запуска компилятора ARM v6

Я разрабатываю новый проект для STM32 на Keil MDK 5.28, используя компилятор ARM V6 ("новый" компилятор armclang). Я впервые использую armclang.

Мой обработчик сброса вызывает __mainсимвол. Как и ожидалось, это выполняет некоторый код запуска библиотеки Keil C, а затем вызывает мойmain функция (позже я удалю вызовы кода запуска, но сейчас я хочу разобраться в проблеме).

Проблема в следующем: внутри одной из функций библиотеки C (_sys_open). Я не устанавливал эту точку останова, и она не отображается в списке точек останова. Не могу удалить (пробовал явно все перестроить). Поэтому я не могу начать сеанс отладки, не прервавшись в этом месте.

Я также пытался снять галочку с опции "Run to Main".

Вы знаете откуда эта инструкция BKPT и как ее убрать?

1 ответ

Решение

Сводка комментариев: инструкция точки останова BKPTявляется частью функции полухостинга, которая должна взаимодействовать с отладчиком. Включение Microlib отключает полухостинг; см. здесь и здесь.

Другие вопросы по тегам