Помнится, при отключеных битах отладочных возможностей, отладка как раз таки будет отваливаться с руганью отладчика, что Target has gone или нечто подобное. Уже не вспомню сообщения Keil'а, но там было предложение прекратить текущую сессию отладки, от которого было невозомжно отказаться (только OK).
HAL'ом стараюсь не пользоваться. Больно уж высокоуровневые они функции наворотили, да ещё в индусском стиле. Частенько у меня их инициализация на 50-100 строк после выпиливания проверок и сведения изменений к одной строке, завершалась за 4-5 строк итогового кода. Соответственно, и работало быстрее и занимало меньше пространства в памяти. А для сборки проекта в RAM это не пустой звук.
Эх, надо бы поискать свою отладочную плату с L152. Хотя, там питание я разводил из рук вон плохо (всё соединено в общую линию без всяких заморочек).
По поводу битов отладки - глава 30 - Debug Support Пункт 30.16.1 - Поддержка отладки в режимах низкого потребления.
To enter low-power mode, the instruction WFI or WFE must be executed. The MCU implements several low-power modes which can either deactivate the CPU clock or reduce the power of the CPU. The core does not allow FCLK or HCLK to be turned off during a debug session. As these are required for the debugger connection, during a debug, they must remain active. The MCU integrates special means to allow the user to debug software in low-power modes.
Для входа в режим низкого потребления, должна быть выполнена инструкция WFI или WFE. В контроллере реализовано несколько маломощных режимов, которые либо отключают тактирования ядра ЦП, или снижают потребляемую мощность. Отладочное ядро не позволяет отключать тактирование FCLK или HCLK во время отладки. Так как они требуются для отладчика в процессе отладки, они должны быть сохранены. Микроконтроллер модержит специальные механихмы, позволяющие пользователю отлаживать код в режиме низкого потребления.
Bit 2 DBG_STANDBY: Debug Standby mode 0: (FCLK=Off, HCLK=Off) The whole digital part is unpowered. From software point of view, exiting from Standby is identical than fetching reset vector (except a few status bit indicated that the MCU is resuming from Standby) 1: (FCLK=On, HCLK=On) In this case, the digital part is not unpowered and FCLK and HCLK are provided by the internal RC oscillator which remains active. In addition, the MCU generate a system reset during Standby mode so that exiting from Standby is identical than fetching from reset
Бит 2. 0 - После инструкции WFI/WFE частоты FCLK, HCLK отключены. Для ПО выход из даннго состояния равносилен переходу на вектор сброса. 1 - В этом случае, цифровая часть НЕ обесточекна и частоты присутствуют и предоставляются внутренним RC-генератором, который остаётся активен. В дополнении, контроллер генерирует системный сброс во время состояния Standby, так что выход из режима ТАК ЖЕ происходит через точку сброса.
Сообщение отредактировал AlanDrakes - Mar 28 2018, 16:21
|