Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Электроника и программирование


Установка и настройка Eclipse + MSPGCC

Введение

Связка свободно распространяемой среды разработки Eclipse и компилятора MSPGCC позволяет осуществить полный цикл разработки для микроконтроллеров семейства MSP430 без каких бы то ни было ограничений. Toolchain состоит из трех компонентов:

  • Eclipse в качестве среды разработки;
  • mspgcc в качестве компилятора и компоновщика;
  • GDB как отладчик.

Необходимые компоненты

Установка MSPGCC

Установка проходит в автоматическом режиме. После завершения установки, замените файлы “hil.dll” и “msp430.dll” в каталоге “/mspgcc/bin” на новые версии.

Содержимое пакета:

  • “\mspgcc\bin” – директория содержит исполняемые файлы и библиотеки;
  • “\mspgcc\docs” – документация в формате PDF и текстовые файлы с описанием входящих в состав пакета программ;
  • “\mspgcc\msp430\include” – заголовочные файлы;
  • “\mspgcc\examples” – примеры кода на C и ASM, с них мы и начнем знакомство со средой и компилятором.

Установка MinGW

Установка проходит в автоматическом режиме. Помимо компонентов по умолчанию, необходимо установить пакет MinGW Make. После установки, добавим путь к директории “MinGW/bin” в переменную окружения “Path”. Для этого перейдем в Control Panel/System/Advanced/Environment Variables/Path/Edit -> добавим в конец “;c:\MinGW\bin”. Теперь нужно перезагрузить компьютер.

Установка Eclipse и JRE

Сначала необходимо установить виртуальную машину Java, если она не установлена на компьютере.

Установка самой среды разработки Eclipse не требуется, достаточно распаковать архив в нужную директорию.

Теперь запускаем среду разработки. Первое, что предложит программа – это выбрать расположение рабочей директории (Workspace), которая будет содержать Ваши проекты и файлы настройки. Подобных Workspace-ов можно иметь любое количество и переключаться между ними в процессе работы.

Выбор рабочей директории

Выбор рабочей директории

Создадим на диске С: директорию C:\Workspace и укажем программе путь к ней. Для того, чтобы избавиться от данного вопроса при последующих запусках программы, можно установить галочку Use this as the default and do not ask again.

Итак, после запуска программы, мы видим окно приветствия. Закроем его (если захотите еще раз увидеть, сделать это можно через пункт меню Help/Welcome).

Главное окно Eclipse

Главное окно Eclipse

Что ж, теперь приступим к самому интересному – создадим первый проект.

Создание проекта

Существует два способа работы с проектом:

  1. Опции компиляции и сборки задаются средой разработки. Хорошее описание данного способа можно найти по ссылке (на немецком языке). В данном случае Вы полностью зависите от среды разработки Eclipse, работа с проектом возможна только из нее;
  2. Компиляция и сборка осуществляются с помощью написанного вручную Make-файла. В этом варианте Вы получаете абсолютно независимый проект, работать с которым можно из любой среды разработки, либо напрямую с помощью утилиты Make.

В этой статье я рассмотрю второй метод, который принял для себя стандартом в оформлении проектов.

Выберем в меню File/New/C Project.

Далее выбираем Makefile project/Empty Project/– Other Toolchain –

Новый проект

Новый проект

Введем имя проекта leds, жмем Next, затем Finish.

В обозревателе проектов (Project Explorer) появился наш новый проект, пока совершенно пустой.

Обозреватель проектов

Обозреватель проектов

Теперь при помощи проводника Windows создадим директории “leds\bin” и “leds\source“.

В качестве примера возьмем проект из пакета MSPGCC, расположенный в “C:\mspgcc\examples\leds\”. Скопируем в директорию “\leds\bin” файл makefile, а в директорию “leds\source” файлы main.c, hardware.h.

В Project Explorer нажимаем правой кнопкой мыши на имени нашего проекта и жмем Refresh, или просто нажимаем F5, и видим новые файлы.

Файлы проекта

Файлы проекта

В настройках проекта (Project/Properties/C/C++ Build), необходимо указать путь к утилите make из состава MinGW, а также, каталог bin как директорию построения проекта.

Настройка билдера

Настройка билдера

Binary Parser

Binary Parser

Также, добавим каталог, содержащий заголовочные файлы для MSP430.

Директории включения

Директории включения

Для утилиты make, осуществляющей сборку программы, необходим специальный файл, называемый Makefile, который содержит в себе варианты построения проекта, опции компилятора и сборщика, описание входящих в его состав модулей и т.д. Классический метод работы с Makefile подразумевает его ручную правку и внесение изменений при модификациях проекта. Я расскажу о другом методе работы с Make-файлом, который я подсмотрел в этой статье.

Makefile

Не буду вдаваться в подробности написания Make-файла, при желании эту информацию можно легко найти. Приведу сразу свой пример, а после дам краткие пояснения.

 
# - bin
# - doc
# - source
# |- subdir
# |-- *.c
# |- *.c
 
# Edit
 
# Имя проекта
NAME            = leds
# Целевой процессор
CPU             = msp430x1611
 
# Компилятор
CC              = msp430-gcc
 
# Флаги компилятора и сборщика
CFLAGS          = -mmcu=${CPU} -g -O2 -Wall
LDFLAGS         = -lmspgcc
 
# Опции программатора
BSLOPT          = -c2 --invert-reset -e -p -v -r
JTAGOPT   = -e
 
# Директории с исходниками относительно makefile
SOURCE_DIRS     = ../source
 
# Do not Edit
 
SOURCE    = $(wildcard $(addsuffix /*.c, $(SOURCE_DIRS)))
OBJECTS_DIRS  = $(notdir $(SOURCE))
OBJECTS   = $(OBJECTS_DIRS:.c=.o)
 
 .PHONY: all FORCE clean download download-jtag download-bsl
 
all: ${NAME}.elf ${NAME}.a43 ${NAME}.lst ${NAME}.d
 
${NAME}.elf: ${OBJECTS}
 ${CC} -mmcu=${CPU} -o $@ ${OBJECTS} ${LDFLAGS}
 
${NAME}.a43: ${NAME}.elf
 msp430-objcopy -O ihex $^ $@
 
${NAME}.lst: ${NAME}.elf
 msp430-objdump -dSt $^ >$@
 @echo "----- RAM/Flash Usage -----"
 msp430-size $^
 
download: download-bsl
 
download-jtag: all
 msp430-jtag ${JTAGOPT} ${NAME}.elf
 
download-bsl: all
 msp430-bsl ${BSLOPT} ${NAME}.a43
 
clean:
 rm -f ${NAME}.elf ${NAME}.a43 ${NAME}.lst ${OBJECTS} ${NAME}.d
 
VPATH := $(SOURCE_DIRS)
 
#dummy target as dependecy if something has to be build everytime
FORCE:
 
${NAME}.d:
 $(CC) -MM ${CFLAGS} ${SOURCE} > ${NAME}.d
 
include $(wildcard *.d)

Представленный Make-файл автоматически строит список исходных файлов, список объектных файлов и зависимости.

Структура проекта, которую я использую, выглядит следующим образом:

  • bin
    • makefile
  • doc
  • source
    • subdir
      • module.c
      • module.h
    • main.c
    • main.h

Для того, чтобы make успешно построил список исходников, необходимо отредактировать переменную SOURCE_DIRS в соответствии со структурой конкретного проекта. Укажите все директории, которые содержат исходные тексты, через пробел, относительно директории /bin, в которой располагается makefile, и в которую будут помещаться выходные файлы проекта.

Конкретный make-файл не включает работу с исходными файлами на ассемблере. При желании это легко можно исправить.

Скопируем представленный выше текст Make-файла и вставим его в файл leds/bin/makefile полностью заменив содержимое.

Теперь мы можем скомпилировать проект и получить на выходе бинарный файл прошивки. Для этого выберем пункт меню Project/Build Project. Или нажмите правой кнопкой мыши на имени проекта в обозревателе.

После того, как процесс компиляции и сборки будет завершен, в директории проекта появятся новые файлы.

Скомпилированный проект

Скомпилированный проект

Отладка

Про работу с отладчиком GDB в среде Eclipse можно прочитать в статье:


В избранное