В этой статье будут рассмотрены настройки IDE Eclipse, некоторые специфические настройки, которые появились в новой версии Eclipse Juno. Многие вещи были описаны в моих предыдущих статьях, посвященных работе в IDE Eclipse.
О структуре проекта для разработки программ для микроконтроллеров ARM в Eclipse рекомендую прочитать статью

Программирование AVR и ARM микроконтроллеров в Eclipse. Часть 2.

Как установить плагин Zilin CDT и настроить отладку в Eclipse вы можете узнать из статьи

Запуск отладки в Eclipse с использованием FTDI JTAG.

И наконец о некоторых секретах эффективного использования среды разработки Eclipse читайте в статье

Примеры эффективного использования Eclipse CDT.

Итак, после установки ARM_Toolchain первым делом пропишем в переменной среды Path пути к исполняемым файлам пакета.
Для этого нужно открыть свойства системы, нажав «Пуск – Панель управления — Система и безопасность – Система — Дополнительные параметры системы — Переменные среды» (для Windows 7) и выбрав в области «Системные переменные» переменную Path. Нажимаем на кнопку «Изменить» и дописываем через точку с запятой пути к исполняемым файлам пакета ARM_Toolchain :

;C:\ARM_Toolchain\GNU_Toolchain\bin;C:\ARM_Toolchain\MinGW\msys\1.0\bin;C:\ARM_Toolchain\OpenOCd\bin;C:\ARM_Toolchain

Запустим командный интерпретатор Command Prompt и введем команду :

>Start_IDE

В появившемся окне выберем «Eclipse C/C++ IDE» и нажмем «OK».
Если вы еще не загрузили архив Examples.zip, то сделайте это сейчас.
При запуске Eclipse выберите рабочее пространство в зависимости от каталога установки ARM_Toolchain, например C:\ARM_Toolchain\Examples.
Откроется проект stm32f10xQuickstart . Необходимо выполнить настройки проекта. Для этого кликните правой кнопкой мышки на проекте и в контекстном меню выберите пункт «Properties». Нажмите на C/C++ Build , в правой части откроется окно с вкладкой «Builder Settings», в поле «Build Command» будет указан путь к утилите make, которая выполняет сборку проекта.

Еще раз войдите в свойства проекта , разверните пункт меню «C/C++ Build». Выберите «Discovery Options» и выполните настройки так, как показано на следующем рисунке.

Нажмите на кнопку «Clear» для очистки всех ранее определенных путей к заголовочным файлам и символов в пункте меню «C/C++ General – Paths and Symbols».
Далее выполните последовательно очистку и сборку проекта , выполнив цели «cleanDebug» и «Debug».
После успешного завершения сборки проекта в пункте меню свойств проекта «C/C++ General – Paths and Symbols» появятся новые пути к заголовочным файлам.

Благодаря этой опции пути и символы определяются автоматически из файлов зависимостей . Эти файлы формируются при компиляции с помощью ключа -MMD, который предписывает компилятору генерировать файлы с расширением *.d , содержащие зависимости объектных файлов от исходных и заголовочных, подключаемых с помощью директивы include c двойными кавычками.

$(OBJ_DIR)/%.o:$(SRC_DIR)/%.c
@echo $<
@echo "------------------------------------------------------"
$(CC) $(CCFLAGS) -MMD -c $< -o $@

Если указать опцию -MD вместо -MMD, то в файлы зависимостей ( *.d ) будут включены все заголовочные файлы, подключенные к проекту , в том числе заголовки библиотеки new_lib.
Я не стал использовать данную опцию по причине возникновения ошибок , которые связаны с отличиями форматирования файлов в Windows и Unix. Пути к заголовочным файлам библиотеки new_lib формируются относительно каталога запуска gcc , они достаточно длинные и поэтому содержат Unix-символы переноса на новую строку «\», которые интерпретируются Windows как элемент пути к файлу.
В нижней области Eclipse на вкладке «Problems» могут появится новые сообщения Eclipse об ошибках и предупреждения. Версия Eclipse Juno стала еще более капризной и придирается даже к синтаксису библиотеки  Stm32 Std Peripheral Library .
Чтобы убрать эти предупреждения нужно отключить соответствующие опции в настройках анализатора кода. Для этого войдите в настройки «Windows – Preferences – C/C++ – Code Analysis» и отключите ненужные предупреждения об ошибках.

Для выполнения сборки окончательной версии проекта , которая включает оптимизацию кода и не содержит отладочной информации, пропишите в Makefile строку :

VERSION= Release

А строку VERSION = Debug закомментируйте символом решетка «#» .
Выполните цель «Release» для сборки финальной версии.

Viewed 21049 times by 4147 viewers

Last modified: 6 февраля 2020

Author

Comments

Спасибо за статью и сборку. Для начинающих осваивать ARM это большая подмога.
Сделал все как в статье. Но что-то у меня не проходит компиляция примера. Выдается такая ошибка:
20:50:41 **** Build of configuration Default for project stm32f10xQuickstart ****
«..\\..\\MinGW\\msys\\1.0\\bin\\make» all
make: *** No rule to make target `all’. Stop.

Подскажите с чем это может быть связано?

    Связано это с тем, что в проекте stm32f10xQuickstart для сборки используется цель
    Debug (или Release) , для очистки проекта cleanDebug (cleanRelease).
    Эти названия используются в IDE Code::Blocks по-умолчанию.
    Для того ,чтобы не создавать два разных Makefile для Eclipse и C::B
    я использую цели именно с такими названиями .

Для использования привычных целей all и clean можно их добавить в Makefile

all:$(VERSION)
clean:clean$(VERSION)

Переменная VERSION может принимать значение Debug или Release.
Рекомендую также прочитать предыдущую статью Быстрый старт c микроконтроллерами STM32F10x. Первый проект в IDE Code::Blocks. Текущая статья получилась больше похожей на дополнение к предыдущей и некоторые моменты, общие для проекта stm32f10xQuickstart были описаны в первой статье , посвященной Code::Blocks , и упущены в статье по Eclipse.

Спасибо, все получилось

Comments are closed.