Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кармин Новиелло - Освоение STM32.pdf
Скачиваний:
2743
Добавлен:
23.09.2021
Размер:
47.68 Mб
Скачать

Продвинутые методы отладки

685

Прочитайте внимательно

Режим Instruction Stepping Mode значительно замедляет процесс отладки, поскольку ЦПУ останавливается на каждой ассемблерной инструкции. Если вы не можете понять, почему отладка происходит так медленно, вероятно, вы забыли про включенное представление Disassembly.

Рисунок 12: Представление Disassembly

24.2.4. Keil Packs и представление Peripheral Registers

Во время сеанса отладки нам может понадобиться доступ к регистрам периферийных устройств, чтобы лучше понять, что происходит с используемым периферийным устройством. Доступ к регистру периферийного устройства с помощью монитора памяти требует от нас больших усилий для понимания значений отдельных битов. Это в значительной степени нецелесообразно во время сеанса отладки.

Инструментарий GNU MCU Eclipse предлагает способ визуализации содержимого регистров периферийных устройств. Эта способность связана с большим дистрибутивом, сделанным компанией ARM: Keil Packs. Пакеты Keil Packs – это модульная технология, аналогичная пакетам дистрибутивов в мире Linux, предназначенная для упрощения распространения программного обеспечения и документации. Основное отличие от обычных библиотек или архивов с исходным кодом состоит в том, что фактические исходные/объектные файлы сопровождаются некоторой формой метаданных, определяющих зависимости между файлами, использование ограничений и условий, а также списки устройств, на которых работает программное обеспечение, с полным описанием их карты памяти, регистров, периферийных устройств и т. д.

Рисунок 13: Значок «Packs» на панели инструментов переключателя перспектив

Для удобной визуализации регистров периферийных устройств нам необходимо загрузить пакет, соответствующий семейству STM32 нашего микроконтроллера. Чтобы выполнить эту операцию, сначала нам нужно переключиться на перспективу Packs, щелкнув по соответствующему значку на панели инструментов перспектив (см. рисунок 13). Перспектива Packs должна появиться пустой при новой установке Eclipse. Вам необходимо синхронизировать Eclipse с текущим репозиторием Keil Packs, щелкнув по значку, выделенному на рисунке 14.

Продвинутые методы отладки

686

Рисунок 14: Как синхронизировать Eclipse с репозиторием Keil Packs

Как только синхронизация завершится, вы можете выбрать семейство STM32 вашего микроконтроллера из дерева слева, как показано на рисунке 15. Появится список пакетов. Выберите последний доступный пакет и нажмите кнопку установки (обведено красным на рисунке 15).

Рисунок 15: Как установить новый пакет

После установки пакета вы можете получить подробный перечень версий пакета и выбрать нужную версию. Выбор версии вызовет обновление окна Outline с кратким перечнем, заменяющего подробный перечень.

Прежде чем мы сможем визуализировать регистры периферийных устройств, нам нужно указать используемый нами микроконтроллер STM32 в настройках проекта. Пе-

рейдите в Project → Properties, а затем в C/C++ Build → Settings. Перейдите во вкладку

Device и выберите запись, соответствующую вашему микроконтроллеру STM32, как показано на рисунке 16. После выбора нажмите кнопку Apply (ВНИМАНИЕ: не пропу-

стите этот шаг! Вам нужно нажать кнопку «Apply» и затем на «OK», иначе конфигурация не применится).

Продвинутые методы отладки

687

Рисунок 16: Как настроить проект, чтобы регистры микроконтроллера отображались правильно

Теперь запустите новый сеанс отладки (если вы уже выполняли сеанс отладки, то перезапустите его), перейдите в представление Peripheral (если оно недоступно, перейдите в Windows → Show View → Peripherals) и проверьте интересующие вас периферийные устройства. Это приведет к появлению регистров периферийных устройств в представлении Memory monitor, как показано на рисунке 17.

Рисунок 17: Как получить доступ к периферийным регистрам во время сеанса отладки