Eclipse + gcc + stlink
Долгое время пользовался IAR'ом и сложности настройки среды Eclipse останавливали меня с него соскочить. А потом, я вырос и настроил Eclipse + gcc + stlink под Windows. И сейчас, спустя много лет сожительства Ubuntu и Windows на моем компьютере, я наконец отдал предпочтение Linux-системе и настройка среды потребовалась вновь. И так, я снес винду, обновил Ubuntu до 13.10 и настроил среду для программирования STM32. По общим впечатлениям, глюков и проблем при настройке среды под Linux было меньше чем при настройке под Windows. Возможно, дело в опыте.
Ниже я описываю процесс установки и настройки среды под Ubuntu.
Ниже я описываю процесс установки и настройки среды под Ubuntu.
Общая схема
Перед тем началом установки, представим, к чему мы должны прийти в конечном итоге. Ниже приведена схема процесса прошивки и отладки с использованием Eclipse, gcc, stlink.
Рис 1. Схема работы |
- Eclipse - открытая, широко известная IDE.
- arm-none-eabi-gdb - Клиентская часть отладчика для исполняемых файлов платформы ARM, без eabi.
- arm-none-eabi-gcc - Кросскомпилятор. На выходе исполняемые файлы для ARM без eabi.
- st-util - Программа из набора stlink, которая подключается к ST-LINK по USB и работает как серверная часть отладчика. Таким образом, arm-none-eabi-gdb подключается к st-util по TCP/IP и обменивается с ним отладочной информацией.
Теперь, в чем плюсы и минусы, в сравнении с другими средствами прошивки и отладки.
Начну с минусов:
- Приходится запускать st-util перед тем, как станет возможной прошивка.
- Периодические глюки разных элементов системы.
- Нет возможности смотреть состояние переменных без остановки отладки.
Теперь, плюсы:
- Разумеется, абсолютная бесплатность решения.
- Возможность отладки платы, подключенной к удаленному компьютеру. Для этого, нужно просто запустить st-util на удаленной машине.
- Среда Eclipse с плагином CDC имеет очень удобную подсветку синтаксиса, ошибок и систему автодополнения кода. Такого нет в IAR.
- Кроссплатформенное решение, может работать под ARM. STLINK можно скомпилировать под любую Windows и Linux систему (в том числе, Android).
- Возможность параллельной отладки нескольких программ, запущенных на разных платформах.
ST-LINK
Начнем с st-link. Качаем исходники тут. Устанавливаем зависимости, их немного:- libusb-1.0
- pkg-config
- autoconf
- automake
./autogen.shДля запуска gdb сервера используйте команду:
./configure
make && sudo make install
sudo st-utilПосле сеанса отладки программа автоматически завершится, потому я делаю так:
sudo -s && while [ 0 ];do st-util;done&Эта команда запустить st-util в цикле, в фоновом режиме и не будет беспокоить вас вводом пароля. Завершить цикл можно удерживанием сочетания клавиш Ctrl+C.
GCC
В дебиан системах самый простой способ установки gcc для arm - установить пакет arm-none-eabi-gcc.Идем сюда добавляем себе подходящий репозиторий и устанавливаем пакет arm-none-eabi-gcc.
sudo apt-get install arm-none-eabi-gcc
Eclipse
Процесс настройки Eclipse для отладки через stlink.1) Качаем Eclipse Kepler тут
1.1) Распаковываем архив командой tar -xvf <имя архива>
1.2) В архиве запускаем исполняемый файл eclipse
2) Help->Install New Software.
Жмем Add
Заполняем поля:
Name: CDT
Location: http://download.eclipse.org/tools/cdt/releases/kepler.
4) Отмечаем галочками (некоторые пакеты могут быть уже установлены в версии Eclipse для C++)
C/C++ Development Tools
C/C++ Development Tools SDK
C/C++ GCC Cross Compiler Support
C/C++ GDB Hardware Debugging
Жмем Next и устанавливаем.
5) Help->Install New Software.
Жмем Add
Name: arm-plugin
Location: http://gnuarmeclipse.sourceforge.net/updates
Отмечаем галочками все
Жмем Next и устанавливаем.
6) File->New->Other
Выбираем C++ Project
Шаблон проекта выбираем в зависимости от версии контроллера.
Все настройки в соответствии с вашей версией контроллера. Еще, вас попросят указать путь к тулчейну и решить, что сделать с библиотеками.
Мой тулчейн находится тут: /usr/arm-none-eabi.
На счет библиотек, если не знаете, что выбирать - выбирайте libnosys. libnosys - это заглушка для функций стандартной библиотеки.
Рис 2. Окно настройки микроконтроллера |
Все! Проект создан.
Теперь вы можете скомпилировать проект.
Прошивка и отладка
Идем Run->Debug ConfigurationsДважды кликаем на GDB Hardware Debugging.
И настраиваем все как на скришотах (За исключением поля C/C++Application. Тут должен быть путь к бинарнику с расширением .elf):
Рис 3. Окно настройки отладчика. |
Рис 4. Окно настройки отладчика. |
На этом все. Дальше, вы работаете только с Eclipse. Главное, не забывать запускать отладчик.
Возможные проблемы
Так как статье уже пол года, и я уже успел сменить Ubuntu на Mint (и остался очень доволен), я разумеется, опробовал инструкцию на себе. В процессе выявились проблемы с новой версией тулчейна, потому я остался на более ранней . Я, к сожалению не записал ошибки в процессе установки, но на данный момент у меня установлены пакеты:
gcc-arm-none-eabi 4-8-2014q2-0saucy9
linux-libc-dev 3.13.0-32.57
Я искренне надеюсь, что в новых версиях все проблемы решены и проблем ни у кого не возникнет.
Комментарии
Отправить комментарий