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

B. Руководство по поиску и устранению неисправностей

764

Проблемы, связанные с Eclipse

В этом разделе содержится список часто возникающих проблем, связанных с Eclipse IDE.

Eclipse не может найти компилятор

Это проблема, которая часто возникает в Windows. Eclipse не может найти папку установки компилятора и генерирует ошибки компиляции, подобные показанным ниже.

Это происходит потому, что плагин GNU MCU не может найти папку кросс-компиля- тора GNU. Чтобы решить эту проблему, откройте настройки Eclipse, щелкнув в меню

Window → Preferences, затем перейдите в раздел C/C++ → Build → Global Tools Paths. Убедитесь, что путь к папке Build tools указывает на каталог, содержащий инструменты сборки (C:\STM32Toolchain\Build Tools\bin, если вы следовали инструкциям в Главе 3, или переорганизуйте путь соответствующим образом), а пути к папке

Toolchain указывают на папку установки GCC ARM (C:\STM32Toolchain\gcc-arm\bin). На

следующем изображении показана правильная конфигурация:

B. Руководство по поиску и устранению неисправностей

765

Eclipse постоянно прерывается при выполнении каждой инструкции во время сеанса отладки

Если вы не включили пошаговый режим отладки инструкций instruction stepping mode, то это происходит из-за того, что вы поставили слишком много аппаратных точек останова. Учтите, что количество аппаратных точек останова ограничено для каждого семейства Cortex-M, как показано в следующей таблице:

Доступные точки останова/точки наблюдения в ядрах Cortex-M

Cortex-M

Точки останова

Точки наблюдения

 

 

 

M0/0+

4

2

M3/4/7

6

4

Чтобы проверить используемые точки останова в вашем приложении, перейдите в перспективу отладки Debug, затем на панель Breakpoints (см. рисунок ниже) и отключите или удалите ненужные точки останова.

Пошаговая отладка очень медленная

Это происходит, когда включено представление дизассемблера Disassembly, как показано ниже.

Eclipse необходимо повторно загружать ассемблерные инструкции ARM на каждом шаге (одна команда Си может соответствовать множеству ассемблерных инструкций), и это действительно замедляет сеанс отладки. Это не проблема, связанная с OpenOCD или интерфейсом ST-LINK, это просто накладные расходы, связанные с Eclipse. Чтобы решить проблему, переключитесь на другое представление (или просто закройте представление

Disassembly).