Меню Рубрики

Установка eclipse для arm

Собираем portable Eclipse-based- > Алгоритмы и программные решения

Как собрать C/C++ Eclipse IDE под Windows для сочинения и отладки микроконтроллерных программ, написано уже немало статей. Я же хочу показать, как сделать portable-версию IDE.

Сама среда Eclipse вполне себе перемещаема и не требует инсталляции. Абсолютным адресом обычно «страдают» инсталлируемые компиляторы-дебаггеры и разнообразные утилиты.

Кратко по порядку, что потребуется:

1. Папка Eclipse в корне диска C

Название и путь расположения может быть и другим. Просто так коротко и понятно.

2. Eclipse IDE for C/C++ Developers

Имеется две версии: Windows 32 Bit и Windows 64 Bit. Какую лучше взять? Если IDE будет использоваться только на 64-разрядной Windows, то качаем версию 64. Если же нужна универсальная среда, способная работать и на x86, и на x64-версии Windows, нужно использовать вариант 32 Bit.
Существенной разницы в быстродействии двух версий не замечено.

3. Виртуальная машина java

Eclipse написана на java, и поэтому для работы требуется Java Virtual Machine (JVM). Виртуальная машина должна иметь ту же разрядность, что и версия Eclipse. Если ранее не была установлена, качаем и устанавливаем. Требуется версия не ниже 1.7.

Все необходимые файлы JVM обычно расположены по адресу
C:\Program Files\Java\ либо C:\Program Files (x86)\Java\.

Копируем все файлы из вышеуказанной папки в Eclipse\java\. Теперь у нас есть копия JVM, которая будет использоваться только для работы с Eclipse.

4. Командный файл для задания начальных параметров и запуска Eclipse

Создаём eclipse.bat и размещаем его в корне папки Eclipse\. В этом файле будем указывать все пути к используемым компонентам нашей IDE.

Для пробного запуска поместим в eclipse.bat следующее:

Здесь первой строкой определяем переменную DEVELOP_ROOT, которая хранит путь расположения (запуска) bat-файла. Собственно, этот параметр и обеспечивает переносимость IDE. Второй строкой задаём путь расположения JVM. Третьей строкой запускаем загрузчик Eclipse. Путь к JVM передаётся в eclipse-загрузчик посредством аргумента -vm.

— путь к рабочей Workspace-папке. Она будет использоваться по умолчанию каждый раз при запуске Eclipse.

— аргументы, передаваемые в JVM. Здесь обычно указывают начальный -Xms и максимальный -Xmx размер памяти, отводимый под кучу. Если эти аргументы не указаны, то дефолтное значение берётся из файла конфигурации eclipse.ini.

Выполняем батник. Убеждаемся, что Эклипса успешно загружается и начинает работать.

5. Компилятор GNU Tools for ARM Embedded Processors

Качаем *.zip файл. Не надо никаких инсталляторов! Распаковать в папку \Eclipse\compilers\ (или в любую другую внутри Eclipse\).

6. Build tools (утилита make)

Рекомендую взять свежую версию tools из проекта GNU ARM Eclipse Plug-ins. Эта версия избавлена от проблемы 2000h (ограничение длины параметров командной строки). Там лежит инсталлятор, но его тоже совсем не обязательно выполнять. Достаточно просто распаковать (7-zip`ом например) и скопировать файлы из папки bin в Eclipse\compilers\make_utils\.

Чтобы Eclipse и его плагины могли работать с нашими утилитами, необходимо указать путь к ним при помощи переменной окружения PATH. Фишка в том, что переменная PATH, заданная в bat-файле, замещает одноимённую глобальную переменную, и позволяет указать пути к нужным нам локальным файлам. Новое значение PATH актуально только в пределах работы нашего eclipse.bat (т.е. для тех программ, которые оттуда запускаются).

Для запуска GCC-компилятора не нужен вот этот глобальный хлам:
и руками сюда вписывать абсолютные пути к компилятору не будем. А просто в бате укажем:

Отлично. Доустанавливаем необходимые плагины с утилитами и прописываем по мере необходимости относительные пути их расположения.

7. GNU ARM Eclipse plug-ins

Скачать архив, или установить напрямую через Eclipse.

8. Eclipse Embedded Systems Register View

Плагин для просмотра содержимого регистров микроконтроллера. Удобно во время отдадки. Ссылка для установки в Eclipse. Последняя версия в распакованном виде занимает всего-то 940 Мб…

9. Дрова и утилиты для отладчика JLink

Устанавливаем. Копируем файлы из C:\Program Files (x86)\SEGGER\JLinkARM_Vxxx\ в Eclipse\utils\jlink\vx.xxx. И… деинсталлируем. Всё что нужно для работы, скопировано. В том числе дрова для USB-отладчика.

Теперь для запуска jlink-gdb-сервера в Debug Configuration достаточно будет указать

Можно пропустить этот пункт, если jlink не используется.

10. OpenOCD

Сборка для Windows. Скачать, распаковать в папку Eclipse\utils\OpenOCD.

Путь для OpenOCD прописывать не требуется. Запуск сервера можно осуществить при помощи например такой конфигурации:

11. Добавить другие плагины и утилиты по вкусу
12. Скрыть DOS-окно

При запуске eclipse.bat отображается dos-окно, которое потом висит на панели задач до момента закрытия Эклипсы. Чтобы его скрыть, создайте файл eclipse.vbs в Eclipse\ с таким содержимым (updated):

Теперь при запуске этого скрипта будет запущен eclipse.bat, который в свою очередь запустит Eclipse без отображения ненужных dos-окошек.
Много кавычек требуется, чтобы «переварить» путь, содержащий пробелы.

Ещё один метод спрятать dos-окно без использования vbs — вызвать Эклипсу при помощи команды start:
Однако чёрное окошко перед скрытием всё же успевает отобразиться на 0,1-0,5 сек. Неэстетично.

Вариант vbs стартует чисто и без артефактов. Поэтому рекомендую именно его.

Заключение

В итоге получили IDE, которая содержит в одной папке все необходимые плагины/компиляторы/утилиты, и способную работать при любом пути расположения корневой папки (естественно, со стандартными ограничениями на длину пути к файлам). Полезности:

  • легко сделать бэкап: сжать в архив целиком папку Eclipse и положить на полку до худших времён; впоследствии восстановление убитой IDE потребует пару минут;
  • легко продублировать (т.е. просто скопировать) IDE на любой другой рабочий компьютер/ноут/принести домой/подарить другу; в отличие от инсталлятора, такая «установка» не пачкает реестр, ничего не прячет в Windows\ и Program Files\ и не распихивает конфигурационные файлы по разным системным и пользовательским папкам;
  • легко обкатывать новые версии компиляторов/отладчиков; достаточно в bat-файле указать путь к новой и закомментарить путь к старой версии, затем перезапустить Eclipse;
  • переносимость позволяет запустить IDE с флэшки; имеем «карманную» отладочную среду;
  • можно jtag/swd-отлаживать одновременно две (и более) программы на одном компьютере, сделав отдельную копию и запустив ещё один экземпляр Eclipse.
Читайте также:  Установка противоток для бассейна

p.s.
Работоспособность ST-LINK utility не проверял, но думаю, проблем быть не должно. Нужно проверить.

p.p.s.
Если кто ещё не перешёл на Атмел-Студию, то добавить:

Компилятор WinAVR

Установить; скопировать в Eclipse\compilers\WinAVR-20100110; деинсталлировать.

The AVR Eclipse Plugin

С компилятором и плагином для AVR проблема: переносимости не получается. AVR-плагин ищет компилятор либо через реестр, либо по абсолютному пути, указанному в настройках.

— принудительно записать адрес компилятора в реестр. Либо вручную, выполнив xxx.reg файл с примерно таким содержимым:
Либо автоматически при каждом запуске Эклипсы, указав в бате
— вручную указать путь на странице настроек «Windows\Preferences\AVR\Paths» среды Eclipse.

p.p.p.s подправил статью с учётом комментариев.

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

eclipse.7z (289 Мб) — собственно, Eclipse IDE + plugins + JVM;
compilers.7z (52 Мб) — AVR/ARM компиляторы + make;
utils.7z (62 Мб) — несколько вспомогательных утилит (в т.ч. OpenOCD, JLink).
Распаковать, запустить Eclipse.vbs.

Комментарии ( 26 )

dp0. Только стоит учесть, что оно уже включает в себя бэкслеш в конце.

Для записи адреса компилятора в реестр необходимо выполнить xxx.reg файл с таким содержимым:

dp0 — это папка с батником (%0 — нулевой аргумент ака имя батника,

источник

Настраиваем бесплатную сборку для написания и отладки программ под микроконтроллеры на основе ядра ARM под Windows 10

Идея написать статью (которая войдет в цикл статей для новичков, остро жаждущих создавать что-то на микроконтроллерах при почти нулевых знаниях в области программирования в принципе) пришла мне после того, как мне пришлось немного отвлечься от своих основных дел, чтобы помочь другу настроить рабочую среду для написания софта под его небольшой домашний проект на основе board-а с stm32f103 на борту. Я рассчитывал, что это займет около получаса, максимум час, но ноутбук друга был на Windows 10 x64, что для меня уже непривычно (сам работаю в Ubuntu). По итогу мы потратили практически 8 часов на настройку и создание простого проекта, борясь с многими не очевидными вещами.

Параллельно с этим мне пришлось подробно объяснять, какой элемент сборки для чего нужен, а так же, как эти элементы взаимодействуют между собой, поскольку друг до этого никогда ранее с микроконтроллерами не сталкивался (от слова «видел Arduino в магазине»).

Данный материал призван помочь начинающим быстро и без проблем настроить полностью бесплатную инфраструктуру для работы с микроконтроллерами, а так же понять, каким образом происходит сборка итогового бинарного файла. Производитель и модель микроконтроллера на этапе настройки этой инфраструктуры неважны. Главное, чтобы в его основе лежало ядро ARM.

Оглавление

  1. Постановка задачи.
  2. Выбор программных средств реализации.
  3. Ставим Eclipse Neon 3.
    • Скачиваем установщик Eclipse.
    • Устанавливаем JRE.
    • Устанавливаем Eclipse.
    • Устанавливаем в Eclipse плагин GNU ARM Eclipse.
    • Патчим JRE (на случай появления ошибки при установке плагина).
    • Устанавливаем GNU ARM Eclipse Windows Build Tools.
  4. Скачиваем и устанавливаем GNU ARM Embedded Toolchain.
  5. Устанавливаем OpenOCD.
  6. Устанавливаем драйвера на st-link v2.
  7. Разбираемся, как все это работает.
  8. Заключение.

Постановка задачи

Выбор программных средств реализации

Для решения поставленных задач нам потребуются следующие программные продукты:

  1. Eclipse Neon 3 для C/C++ (самая последняя версия на момент написания статьи). Будет использована нами как IDE (текстовый редактор с удобным авто дополнением + удобства по взаимодействию со средствами отладки), в которой мы будем писать код.
  2. JRE (на момент написания статьи, самая последняя версия 1.8.0). Без него не запустится установщик Eclipse (ну и сам Eclipse).
  3. GNU ARM Embedded Toolchain (на момент написания статьи, самой последней версией был 5_4-2016q3-20160926). Это комплекс нужных нам программных решений (таких как компилятор C кода «gcc», C++ кода «g++», линкер — «ld», средство загрузки и отладки финальной прошивки — «gdb» и многие другие), благодаря которым мы получим из наших файлов с исходным кодом файл с разрешением «.elf», представляющий из себя бинарный файл прошивки микроконтроллера, который в последствии будет загружен в микроконтроллер (об этом ниже).
  4. OpenOCD 0.10.0. С помощью него мы будем загружать наш «.elf» файл программы в микроконтроллер (на деле, OpenOCD предоставляет связь между gdb из указанного выше toolchain-а и отладчиком).
Читайте также:  Установка интерактивной доски и проектора smart board

Помимо перечисленных средств, нам нужно будет поставить еще несколько небольших пакетов, о которых я скажу уже непосредственно в процессе установки.

Ставим Eclipse Neon 3

Как говорилось выше, для того, чтобы писать код, нам нужен текстовый редактор, в котором было бы удобно писать (различные методы авто-дополнения, поиска по проекту, навигация по файлам и т.д). А после того, как мы написали код, было бы неплохо, чтобы его компиляция, сборка и исполнение — были бы делом пары комбинаций клавиш (или кликов мышью, кому как удобно).
Для этих целей я использую Eclipse. Помимо редактора, он представляет еще возможность подключения различных расширений, которые значительно упрощают жизнь разработчика, сводя всю рутинную работу (сборку, компоновку, загрузку программы в контроллер) к паре кликов/нажатий.

источник

Программирование контроллеров ARM7 в Eclipse: как это делается. v2.0

Когда-то я уже писал статью о программировании контроллеров в Eclipse, но это было сделано под Ubuntu и без помощи тулчейна. Теперь я расскажу, как сделать это с помощью тулчейна и под Windows.
Итак, у меня имелись: установленная Eclipse для Java, плата с контроллером AT91SAM7X512, модуль SAM-ICE от Atmel и злое начальство в качестве мотивации.

Устанавливаем/доустанавливаем Eclipse IDE

Первое что мы делаем — устанавливаем Eclipse и всё нужное в неё. Последняя на данный момент версия это Eclipse Kepler. Если она не установлена идём сюда и скачиваем Eclipse IDE for C/C++ Developers, затем распаковываем её в удобное место.

Если Eclipse уже установлен(в моём случае Eclipse IDE for Java Developers), то запускаем её, выбираем удобное для нас место для workspace, где будут лежать все проекты, идём в меню Help ⇒ Install New Software и в поле «Work with. » выбираем «Kepler — download.eclipse.org/releases/kepler». Нам откроется список того, что есть на этом источнике. Разворачиваем узел «Programming language«, ставим галочку на «C/C++ Development Tools«, затем разворачиваем узел “Mobile and Device Development“, ставим галочку на “C/C++ GDB Hardware Debugging”, нажимаем «Next» и «Finish«. После установки Eclipse перезапустится.

В случае, если вы скачивали Eclipse IDE for C/C++ Developers, доустановите плагин C/C++ GDB Hardware Debugging. Он нам понадобится при отладке, а пока поставим ещё один плагин, для поддержки тулчейна.

Снова идём в меню Help ⇒ Install New Software, нажимаем кнопку «Add«. В появившемся окне указываем любое имя в строке «Name«, а в строке «Location» указываем следующее:
gnuarmeclipse.sourceforge.net/updates
Нажимаем «OK«. Нам покажут огромный список того, что есть в этом источнике из целого одного компонента — «CDT GNU Cross Development Tools«. Ставим на нём галочку, жмём «Next» и «Finish«. Во время установки не обращаем внимание на Warning и смело жмём на ОК. После установки Eclipse перезапустится.
Вуаля, здесь всё. Идём дальше.

Устанавливаем компилятор

Идём сюда и скачиваем установочник Sourcery CodeBench Lite Edition. На данный момент последняя версия 2013.11-24. Установка проста, единственное на чём нужно заострить внимание — обязательно нужно поставить галочку «Изменить переменную PATH«. После установки перезагружаем машину.
Для проверки правильности установки в командной строке выполняем команду:
arm-none-eabi-gcc -v .
Она должна показать нам подробное описание всего инструментария и версию компилятора. На этом с компилятором всё.

Создаём скелетный проект

Запускаем Eclipse, идем в меню «File->New->C Project«. Появится окно создания проекта. Даём ему имя, в дереве “Project type” выбираем тип проекта “ARM Cross Target Application -> Empty Project”, а из тулчейнов выбираем Sourcery. Нажимаем Finish.

Проект есть, теперь нам нужен файл Startup и скрипты линкера для отладочной конфигурации и для прошивки в контроллер.
Идём сюда и скачиваем архив «AT91SAM7X-EK Software Package for IAR 5.2, Keil and GNU». В нём идём по пути /at91sam7x-ek/packages/ и выбираем любой проект, имя которого оканчивается на gnu. В нём идём по такому пути /имя_проекта/at91lib/boards/at91sam7x-ek, забираем отсюда файл board_cstartup.S, а из лежащей там же папки at91sam7x512 забираем файлы AT91SAM7X512.h, sram.lds, flash.lds и копируем всё это добро куда-нибудь в одну папку.

Снова идём в Eclipse. Там правой кнопкой мыши тыкаем на наш проект и выбираем «Import«, в появившемся окне выбираем General->File System, жмём Next. Выбираем папку, куда скопировали файлы board_cstartup, sram и flash, ставим галочки на этих файлах и нажимаем Finish. Вуаля, файлы появились у нас в проекте.

Теперь нужно немного поправить файлы .lds. Приведите их к такому виду:

OUTPUT_FORMAT(«elf32-littlearm», «elf32-littlearm», «elf32-littlearm»)
OUTPUT_ARCH(arm)
ENTRY(entry)

MEMORY
<
sram (W!RX): ORIGIN = 0x200000, LENGTH = 0x20000
flash (RX): ORIGIN = 0x000000, LENGTH = 0x80000
>

.relocate: AT (_efixed)
<
. = ALIGN(4);
_srelocate = .;
. = ALIGN(4);
_erelocate = .;
>

OUTPUT_FORMAT(«elf32-littlearm», «elf32-littlearm», «elf32-littlearm»)
OUTPUT_ARCH(arm)
ENTRY(entry)

MEMORY
<
sram (RWX): ORIGIN = 0x200000, LENGTH = 0x20000
flash (RX): ORIGIN = 0x100000, LENGTH = 0x80000
>

SECTIONS
<
.fixed:
<
. = ALIGN(4);
_sfixed = .;
*(.vectors)
*(.text*);
*(.rodata*)
_efixed = .;
> >flash

Читайте также:  Установка интернета для чайников

.relocate: AT (_efixed)
<
_srelocate = .;
*(.data)
*(.data*)
. = ALIGN(4);
_erelocate = .;
> >sram

Скелетный проект готов.
Теперь можно писать код, добавляя новые файлы через File->New-> C/C++ Source File. У меня проект был и я его просто импортировал.

Настройка проекта

Теперь нужно настроить проект, для чего идём в меню Project->Properties или делаем правый клик по нашему проекту и выбираем там Properties.
В появившемся окне выбираем пункт “C/C++ Build->Setting”. Выбираем в поле Configuration пункт All configuration. Теперь пройдёмся по всем пунктам настроек.

Target processor
  1. Processor — arm7tdmi
  2. Architecture — armv4t
  3. Thumb — disabled
  4. Thumb interwork — enabled
  5. Endianness — Little Endian
  6. Float ABI — Library
  7. Other target flags: -marm — mlong-calls
ARM Windows GCC C Compiler — Optimization
  1. Pack structure — disabled
  2. Short enumeration — disabled
  3. Function sections — enabled
  4. Data sections — disabled
ARM Windows GCC C Compiler — Miscellaneous
  1. Language Standart — ISO C99 with GNU Extensions

Остальные пункты здесь не трогаем

ARM Windows GCC C Linker

В пункте General:

  1. Script File — пока не трогаем
  2. Do not use standart start files — enabled
  3. Do not use default libraries — enabled
  4. Remove unused section — enabled

Остальное — отключаем

В пункте Miscellaneous: ставим галочку на Cross Refereinse.

ARM Windows GNU Create Flash Image — Output

Идем обратно на вкладку Debugging, а в поле Configuration выбираем Debug. Выставляем Debug level — Maximum, а Debug format — gdb, жмем Apply. Теперь переключаем конфигурацию на Release, выставляем Debug level — None и жмём Apply.

Теперь возвращаемся на ARM Windows GCC C Linker — General, в поле Configuration выбираем Debug, а в качестве Script file указываем наш файл sram.lds. Нажимаем Apply. Теперь переключаем конфигурацию на Release, а в качестве Script file указываем файл flash.lds и снова жмём Apply. Всё, настройка проекта закончена. Теперь можем включить нужную конфигурацию билда и собирать прошивку.

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

Идем сюда, вводим серийный номер нашего SAM-ICE, скачиваем и устанавливаем пакет программ для J-Link. Здесь есть очень важная штука — GDB Server, который очень пригодится нам для отладки. Ещё одна важная штука — JFlash, который позволяет без проблем прошить наш контроллер.

Создаём конфигурацию для запуска отладочного сервера, для чего в Eclipse идём в меню Run->External Tools->External Tools Configurations и делаем двойной клик на пункте Program. Настраиваем, свежесозданную конфигурацию.

Вкладка Main:

  1. Name — назовем как-нибудь, например GDB Server
  2. Location — указываем путь к установленному недавно JLink GDB Server, в моём случае это C:\Program Files (x86)\SEGGER\JLinkARM_V412\JLinkGDBServerCL.exe
  3. Working Directory — указываем путь к папке нашего проекта
  4. Arguments — никаких аргументов нам и не надо, интерфейс JTAG используется по умолчанию

Вкладка Common:

  1. Ставим галочки на Display in favorites menu и Launch in background.

Теперь создадим конфигурацию для запуска отладки. Идём в меню Run->Debug Configurations, в открывшемся окне делаем двойной клик по GDB Hardware Debugging, что создаст нам новую конфигурацию отладки. Настраиваем.
Вкладка Main:

  1. C/C++ Application — указываем наше приложение из папки Debug с расширением .elf
  2. Project — указываем наш проект.
  3. В нижней части окна, на уровне кнопок Apply и Revert притаилась ещё одна скрытая настройка, нужно её обязательно открыть до перехода на следующую вкладку и выбрать «Legacy GDB Hardware Debugging Launcher«

Вкладка Debugger:

  1. GDB Command — указываем наш отладчик arm-none-eabi-gdb.exe
  2. Command Set — Standart Windows
  3. Protocol Version — mi
  4. Use remote target — enabled
  5. JTAG Device — Generic TCP/IP
  6. Host name or IP adress — localhost
  7. Port number — 2331

Вкладка Startup:

  1. Reset and Delay — disabled
  2. Halt — disabled
  3. Далее следует окошко, в котором указываем следующий скрипт инициализации:
    # connect to the J-Link gdb server
    target remote localhost:2331
    # Set JTAG speed to 30 kHz
    monitor endian little
    monitor speed 30
    # Reset the target
    monitor reset 8
    monitor sleep 10
    # Change mapping, putting RAM at addr. 0
    monitor long 0xFFFFFF00 = 0x00000001
    # Setup GDB for faster downloads
    set remote memory-write-packet-size 1024
    set remote memory-write-packet-size fixed
    monitor speed 12000
    break main
    load
  4. Load image — enabled, use project binary
  5. Load symbols — enabled, use project binary
  6. Symbol offset — не ставим
  7. Set program counter at — disabled
  8. Set breakpoint at — disabled
  9. Resume — disabled
  10. Run command — пусто

Вкладка Common:

  1. Ставим галочки на Display in favorites menu, Allocate console и Launch in background.

Всё готово. Теперь для отладки подключаем SAM-ICE к USB порту нашей машины и к плате с контроллером, собираем наш проект, запускаем сервер GDB, а потом запускаем собственно конфигурацию отладки.

В итоге мы получили бесплатную IDE для программирования и отладки приложений для ARM-контроллеров, на замену, скажем, тому же IAR. Наша Eclipse, конечно, несколько уступает по части отладки — нельзя с ходу просмотреть значения регистров периферийных устройств, таких как SPI или таймеры-счётчики.

источник