Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2017-ноя-19 04:19

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: 2017-апр-04 03:38 
Не в сети
Аватара пользователя

Зарегистрирован: 2017-мар-12 05:44
Сообщения: 1
Откуда: г.Новосибирск
Обзавёлся я отладочным комплектом для 32F9Q2i и еще несколькими кристалами(в будущем пойдут в реальные устройства - ЭБУ для ДВС). В качестве отладки использовал китайский ST-Link/v2 по SWD(об нём будет ниже). В спецификации на проц этого нет, но кристалл таки поддерживает SWD-отладку, что меня порадовало, ибо догонять гуляющий по рукам U-Link ну никак не улыбалось.

Потыкался в Кейле, всё работает, всё хорошо. Вроде бы чего еще желать? Да вот только я по своей натуре - линуксоид. Держать отдельную виртуальную машину с Windows - расточительство. Да и не удобно переключаться туда-сюда. К тому же винда даже в виртуалке стоит денег. да и в будущем планируется большой объем кода, значит и за Кейл тоже платить надо. И тогда я всё-таки решился - собрать в моём любимом Debian среду разработки. выбор был между Code::Blocks и Eclipse. В C::B я пишу для всякой мелочи вроде AVR. Подружить его мне так и не удалось с компилятором. Тогда я начал собирать конструктор на основе Eclipse.

В итоге получилась такая связка - Eclipse + ARMgnuPlugin + gcc-arm-none-eabi + gdb-arm-none-eabi + OpenOCD.
Были танцы с бубном вокруг отладочника, запуска и прошивки. Всё это было мной преодолено и я хочу поделиться со всеми этим замечательным рецептом, а так же по возможности помогать и отвечать на все ваши вопросы.
Поехали!!(с)Гагарин

П1. УСТАНОВКА
У меня Debian - по этому в первую очередь написаное ниже актуально для deb-based дистрибутивов. Будет необходимость - сделаю подобное для rpm-based. Ну и с некоторыми правками это подходит и для Windows.

Первым делом идём за средой разработки - http://www.eclipse.org/downloads (тем, у кого стоит уже неон 2 советую обновиться до 3й версии потому что во второй был баг с отладкой в клиенте выше 7.10, я на эти грабли наткнулся. в 3й версии починили)

Распаковываем. Я работаю в консоли, по этому всё, что можно натыкать на клаве, стараюсь натыкивать. Итак, у меня Эклипс скачался в ~/Downloads:

Код:
cd Downloads
tar zxvf eclipse-inst-linux64.tar.gz
cd eclipse-installer
./eclipse-inst


Для тех, у кого ругнулось на версию Java. Идём за последней версией сюда -
http://www.oracle.com/technetwork/java/javase/downloads
Выбираем справа JDK, Оракл просит принять лицензию. Жмём кружок у Acept License. Без этого не дадут скачать. Выбираем jdk-XuYYY-linux-ARCH.tar.gz X иYYY Версия Java(на момент написания - 8u121) ARCH - архитектура вашей системы. Если не знаете - в консоли набираем uname -a и ищем там x86_64 или amd64 - нашли - ваша архитектура x64, нет - i586.
Скачалось - идём вконсоль:
Код:
cd ~/Downloads #это папка с нашими загрузками
tar zxvf jdk-XuYYY-linux-ARCH.tar.gz #здесь подставляем версию и архитектуру того, что скачали
mkdir /opt/jdkX #здесь у нас будет жить наша Java
sudo cp -r jdk1.X.0_YYY/* /opt/jdkX]/ #копируем распакованные файлы на ПМЖ. У Вас должны быть права sudo
sudo update-alternatives --install /usr/bin/java java /opt/jdkX/bin/java 0# добавляем альтернативу
sudo update-alternatives --set java /opt/jdkX/bin/java  #и активируем ее
java -version #проверяем версию Java

Выхлоп последней команды должен быть примерно таким -
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

снова запускаем установку -
Код:
cd ~/Downloads/eclipse-installer
./eclipse-inst


Всё, наши мытарства с JAVA закончились(почти), идём дальше -
Выбираем вариант C/C++ development
Соглашаемся с лицензией.
После того, как эклипс поставился, можно его пока закрыть. У нас впереди более важные дела.
Ставим компилятор и клиента отладки:
Код:
sudo apt-get install gcc-arm-none-eabi gdb-arm-none-eabi -y

Почему тут нет OpenOCD? по крайней мере в Debian он старый. Мы его будем собирать ручками. Идём за ним - https://sourceforge.net/projects/openocd/files/openocd/, выбираем тот, что посвежее, но не rc(это тестовые версии. не стабильные) качаем тот, что zip.
теперь нам надо инструментарий для сборки этой штуки, ставим -
Код:
sudo apt-get install build-essential linux-headers-`uname -r` make autoconf cmake libusb-1.0-0-dev pkg-config -y

После того, как поставилось - распаковываем и собираем -
Код:
cd ~/Downloads
unzip openocd-VERSION.zip #VERSION - версия, которую скачали. у меня - 0.10.0
cd openocd-VERSION/
./configure
make
sudo make install

Итак. У нас уже стоит Eclipse, компилятор, клиент и сервер отладки. Всё готово, чтоб перейти к настройке.
П2. НАСТРОЙКА
Запускаем Eclipse по дефолту он ставится в ~/eclipse/cpp-neon Минус разработчикам - ярлык приходится самому делать. А можно прямо из папки запускать.
Первым делом надо поставить поддержку ARM - Help → Install New Software→ Add...
Name: GNU ARM Eclipse Plug-ins
Location: http://gnuarmeclipse.sourceforge.net/updates

Жмем ОК, ждём, пока прогрузится.
Выбираем всё, жмём далее, соглашаемся с лицензией, ждём пока всё поставится. По окончании установки Эклипс предлагает перезагрузиться. Соглашаемся.

Может вывалиться сообщение об ошибке - Изображение
Вот тут описано, как лечить яву - http://gnuarmeclipse.github.io/blog/2017/01/29/plugins-install-issue/

Ну и по русски продублирую - идём на сайт Оракла, качаем Секюрити-пак - http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
и расспаковываем в папку с явой по пути lib/security относительно корня с JRE. я ставил JDK8, по этому у меня путь такой - /opt/jdk8/jre/lib/security/

Теперь ставим поддержку наших процессоров во вот этому мануалу (копипасата) - http://forum.milandr.ru/viewtopic.php?f=22&t=3365
Я вставлю здесь основные моменты, надеюсь автор этого поста (kravitz) не обидится - я хочу собрать всё в одном месте.
Установка пакета в Eclipse

Код:
Eclipse Menu → Window → Preferences → C/C++ → Packages → Repositories → Add...

type: CMSIS Pack
name: Milandr
url : https://raw.githubusercontent.com/in4lio/mdr1986x-pack-repo/master/index.pidx

Дальше идём Window → Perspective → Open Perspective → Other
Изображение
→ Packs
Изображение
У нас появились кубики
Изображение
Обновляем все пакеты. это долго.
Изображение
Выбираем слева Milandr - В среднем окне по пакету 1.4.2 правой кнопкой, Install
Изображение
Всё. Основное мы сконфигурировали. Но если кто расслабился - то рано))) Ой как рано.
П3. Первый проект
Переключаемся на исходный код -
Изображение
Дальше я предлагаю не наступать на грабли, по которым прошел я, а взять готовый шаблон проекта, распаковать его, импортировать в Эклипс, а потом просто копировать. Возможно, чуть позже я выложу его на гитхаб, чтоб удобнее было обновлять. А пока импортируем распакованный проект из файла TemplatePRJ.zip: File - Open Project from File System - Directory
Изображение
и указываем папку, куда распаковали -
Изображение
Вот у нас есть шаблон проекта, котрорый можно клонировать.
О структуре этого шаблонного проекта -
Изображение

UPD
Я выложил шаблон проекта на наш гитлаб. кому удобнее так, могут просто склонировать или воспользоваться встроеным в Eclipse менеджером контроля версий.
лежит шаблон тут - https://gitlab.nsu.ru/milandr/template_milandr

Пойдём по порядку, сверху вниз:
-includes - системные папки, указывающие на все доступные инклюдники. Сделать с ними ничего нельзя, просто полюбоваться.
-Libs Папка с библиотеками. С проектом идёт 3 библиотеки - чуть-чуть допиленная мной библиотека для МЭЛТ-овского экрана 128*64, библиотека для опроса матричной клавиатуры 4*4 и мой любимый уарт-Хелпер, который упрощает вывод 16иричных чисел. кстати библиотечка для экрана тож умеет. Внутри каждая библиотека делится на inc и src - в inc - заголовочники, в src - исходники. включаются библиотеки в код так -
Код:
#include <ИМЯ_БИБЛИОТЕКИ/inc/ИМЯ_БИБЛИОТЕКИ.h>

-src Папка с исходниками пользователя. Опять же лежит main.c
-system - папка с ядром СM3 и SPL. В будущем из SPL модули сами будут подключаться-отключаться.
-Config - Конфиг проекта. Насколько я в него вникал - блокирует запись в уарты всякие и проч.
-include Папка с заголовочными файлами, созданными пользователем, тут же лежит main.h, в котором подключаются все необходимые заголовочники.
-ldscripts - здесь лежит скрипт линкера.
В корне есть еще исполняемый файл opcd.sh - он нужен для простой заливки в МК без отладки.

Чуть попозже я дополню статью настройкой отладки и загрузки.
UPD.30мая2017


Вложения:
TemplatePRJ.zip [2.19 МБ]
Скачиваний: 42

_________________
боги создали труд и обезьяну
чтоб получился человек
а вот пингвина они не трогали -
тот сразу вышел хорошо
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB