Страницы

среда, 24 апреля 2013 г.

Миландр К1986ВЕ92QI (MDR32F9Q2I) GNU ARM toolchain

Обновляемая заметка о настройке свободного набора инструментов разработки под ARM микроконтроллер Миландр К1986ВЕ92QI MDR32F9Q2I в среде Linux Ubuntu Gnome 13.04, Linux Mint Mate.

Т.к. в силу сложившихся обстоятельств разработка любительских поделок ведется в Windows, с плавным переносом под Linux, то данная заметка будет дополняться постепенно.


Основную трудность на данный момент (Апрель 2013 года) составляет загрузка прошивки в микроконтроллер Миландр MDR32F9Q2I свободными инструментами.




Предварительная установка вспомогательных средств



Установка базового набора утилит для сборки проектов из исходных кодов:

$ sudo apt-get install build-essential


Установка среды исполнения JAVA. Часто уже установлена и можно пропустить этот шаг.

$ sudo apt-get install default-jre


Установка систем контроля версий SVN и GIT. Понадобиться для загрузки исходных кодов из различных источнков.

$ sudo apt-get install subversion

$ sudo apt-get install git

※※※



Установка ARM-toolchain (ARM-компилятора, ARM-отладчика)



Стандартный GCC в Ubuntu настроен для компиляции для платформы x86, а надо для ARM.

$ sudo apt-get install libc6-dev-armel-cross gcc-arm-linux-gnueabi


После установки, исполняемые файлы с префиксом: arm-linux-gnueabi будут расположены в папке /usr/bin.


Например:


$ arm-linux-gnueabi-as --version
$ arm-linux-gnueabi-gcc --version

$ arm-linux-gnueab-gdb --version


Теперь можно качать пример с ассемблерным файлом из моей заметки "ARM GNU AS example", компилировать и пробовать загружать в микроконтроллер Миландр MDR32F9Q2I. Команда make используется стандартная, и для неё в примере, подготовлен файл. Правда собирался только под Windows, так что возможно придётся немного подправить.

Загрузку прошивки можно осуществить программатором milprog. Пока только так.


※※※




Установка Eclipse CDT - среды разработки на языках C/C++



Eclipse platform - это целое семейство различных инструментов, построенных на единой платформе (специальные классы на языке Java). Вся платформа написана на языке Java, в силу этого переносима на операционные системы, поддерживающие среду исполнения Java.

Изначально, предназачалась для разработки на языке Java.


Eclipse CDT - это дополнение к платформе Eclipse, позволяющее разрабатывать на языке C/C++/ASM, для процессоров архитектуры x86. Набор средств подсветки исходных кодов, мастеров-шаблонов, графических отладчиков и пр.



В Ubuntu 13.04 присутствуют пакеты Eclipse platform версии 3.8.

Эта версия, по состоянию на март 2013 года - устарела, но и её можно настроить для разработки под ARM, но не просто. Поэтому, надо скачать дистрибутив с сайта Eclipse.



Eclipse platform 3.8 и CDT  можно установить следующим образом, но уже не рекомендуется:

$ sudo apt-get install eclipse-platform

либо

$ sudo apt-get install eclipse-cdt


В марте 2013 года, актуальная версия Eclipse - Eclipse Juno 4.2 и CDT 8.1.2.

В октябре 2015 года, актуальная версия Eclipse - Eclipse Mars.1 и CDT 8.8.0.



С сайта http://www.eclipse.org/cdt/ скачивается версия Eclipse for C/C++ Developers (сокращённо Eclipse CDT).


В октябре 2015 года, проще и быстрее скачать Eclipse Installer и в нём выбрать Eclipse for C/C++ Developers для установки.


Распаковывается в каталог из которого и будет работать.

Запускается в развернутом каталоге так:  ./eclipse

Можно также переместить распакованный каталог в папку /opt. Делается это с правами root-администратора.


Делается настройка для различных окон среды Eclipse в XMonad, если не устраивает поведение по-умолчанию.

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

Автозагрузка выглядит предпочтительнее.


После установки, можно попробовать обновиться, через меню "Help - Check Updates".


※※※




Установка Eclipse GNU ARM plugin



Eclipse GNU ARM plugin - это дополнение к уже сформированной платформе Eclipse + CDT, позволяющее разрабатывать программы на языках C/C++/ASM, но уже для процессоров архитектуры ARM.

Устанавливается из меню "Eclipse - Install Software".


В появившемся окне, надо добавить ссылку на источник кода для GNU ARM Plugin, нажав кнопку Add..


Источник кода: http://gnuarmeclipse.sourceforge.net/updates


Отметить появившейся пакет.

Выполнить пошаговый мастер и перезагрузиться.


※※※




Установка Eclipse GNU GDB Hardware debugging



Eclipse GNU GDB Hardware debugging - это дополнение к связке Eclipse+CDT+GNU ARM plugin,  позволяющее выполнять пошаговую графическую отладку процессоров ARM, в интерфейсе среды разработки.


Цепочка отладки включает в себя и GDB-сервер, и JTAG-адаптер и их средства взаимодействия.


Устанавливается Eclipse GNU Hardware debugging также через меню "Help - Install Software".


Только в качестве источника кода выбрать из списка ссылку на имеющийся релиз. (У меня Juno SR2).

Итак, источник для Juno SR2: http://download.eclipse.org/releases/juno/201303010900

В октябре 2015 года, источник другой для Eclipse Mars.1




Чтобы быстро найти нужный пакет, в строке поиска набрать "Hardware".

Нужный нам код находиться в "Mobile and Device development".

Называется "C/C++ GDB Hardware debugging".


Отметить.

Выполнить пошаговый мастер и перезагрузиться.


※※※




Установка OpenOCD - jtag-отладчика и GDB-сервера



Предварительные сведения, пока не устанавливал и не собирал.


OpenOCD - Jtag-отладчик, программатор и GDB-сервер, поддерживающий многие jtag-эмуляторы, в том числе имеющиеся у меня J-Link и Bus Blaster (FT2232H), а также ST-link.


Загрузить исходные коды OpenOCD из git-хранилища:

$ git clone git://git.code.sf.net/p/openocd/code openocd


Скорее всего, понадобиться и библиотека libFTDI, её исходные коды.

$ mkdir libftdi

$ cd libftdi

libftdi$ git clone git://developer.intra2net.com/libftdi

$ cd ..


А также LibUSB - библиотека для работы с USB-устройствами. Может оказаться, что она уже в системе установлена, тогда имеет смысл проверить её версию.

$ mkdir libusb

$ cd libusb

$ git clone git://git.libusb.org/libusb.git

$ cd ..


Перед сборкой OpenOCD, надо собрать и установить библиотеки LibUSB и LibFTDI. Вначале более общий уровень - LibUSB, затем LibFTDI и затем OpenOCD.



Сконфигурировать исходные коды OpenOCD.

Конфигурирование и сборка проводятся папке с исходными кодами.


Опции конфигурирования просмотреть на сайте отладчика, либо в документации, либо ./configure --help

./configure "указать опции"


Предварительно, для моих отладчиков опции следующие:

$ ./configure --enable-jlink --enable-ft2232_libftdi --enable-stlink



Собрать проект.

$ make


Установить в систему.

$ make install


※※※



Установка специфических утилит для микроконтроллера Cortex-M3 Миландр MDR32F9Q2I



Установка Milprog - программатора для микроконтроллеров Миландр MDR32F9Q2I



Сайт программатора milprog: https://github.com/sergev/milprog


Загрузка исходных кодов программатора.

$ svn checkout http://milprog.googlecode.com/svn/trunk/ milprog


либо


$ git clone https://github.com/sergev/milprog.git


※※※


Установка MDR32 SPL



Пока не выполнялась.

см. форум: http://forum.milandr.ru/viewtopic.php?f=33&t=607


Для скачивания выполнить:


$ git clone https://github.com/eldarkg/emdr1986x-std-per-lib.git


※※※


Установка драйверов адаптеров USB-UART-TTL



При разработке для микроконтроллеров обязательным инструментом сейчас становиться согласующее устройство (адаптер) USB-UART-TTL, т.к. практически каждый микроконтроллер оборудован последовательным портом. Это не полный стандарт RS-232, а обычно 3 провода (TX-RX-GND), с логическими уровнями TTL. Так что требуется переходник.


Наиболее интересны переходники на основе микросхем FT232RL, FT232H фирмы FTDI. Целое семейство микросхем - с двумя портами, с четырьмя портами.


Основной бонус, это наличие в микросхеме специального режима (MPSSE), позволяющего использовать её как JTAG-отладчик, и для эмуляции последовательных протоколов (I2C, SPI и пр.). Для этих микросхем есть специальные фирменные драйверы, поддерживающие расширенную функциональность.


Для использования переходника на основе FT232, в качестве последовательного порта, драйвер (ftdi_sio) входит в ядро Linux. Но для использования фирменных драйверов и расширенной функциональности, их надо установить, а также выгрузить драйвер ftdi_sio.



Также, обычно понадобиться открытая библиотека LIBFTDI, многие программаторы используют её.


Загрузить LIBFTDI можно с сайта: http://www.intra2net.com/en/developer/libftdi/download.php



※※※


Установка Eagle CAD



Разработка программ под микроконтроллеры Миландр MDR32F9Q2I, помимо программных инструментов, требует  и аппаратные средства. Их можно создать самостоятельно используя графическую программу Eagle CAD. Это распространённая среди любителей программа, позволяющая бесплатно создать 2-слойную плату размером 10х10.

Загрузить можно с сайта:

http://www.cadsoftusa.com/download-eagle/?language=en


Версия, доступна под Windows, Linux, Mac OS X, так что проекты хорошо переносятся между операционными системами.
По состоянию на октябрь 2015 года, 64-битный установщик работает нормально на версии Linux Mint 17.2.


Проблемная установка старых версий в 64-битной версии Ubuntu: http://gimmor.blogspot.com/2014/04/eagle-cad-64-ubuntu-1404-1310-1304.html


※※※

Установка KiCAD



Открытая система разработки электронных схем и печатных плат.

Сайт: http://www.kicad-pcb.org/


Рекомендуемая процедура установки из PPA.

$ sudo add-apt-repository ppa:js-reynaud/kicad-4

$ sudo apt-get update

$ sudo apt-get install kicad

В пакет KiCAD EDA входит полезная (обязательная) программа Gerbview для просмотра файлов GERBER, отправляемых в производство.



※※※


Ресурсы



1. Eclipse CDT. http://www.eclipse.org/cdt/

2. Eclipse GNU ARM Plugin. https://github.com/gnuarmeclipse

3. Eagle CAD. http://www.cadsoftusa.com/download-eagle/?language=en

4. Kicad EDA. http://www.kicad-pcb.org/

5. OpenOCD. http://openocd.org/

6. Драйверы FTDI. http://www.ftdichip.com/Drivers/D2XX.htm

7. Программатор milprog. https://github.com/sergev/milprog

8. MDR32 Standard Peripherial Libary. https://github.com/eldarkg/emdr1986x-std-per-lib  http://forum.milandr.ru/viewtopic.php?f=33&t=607

9. Библиотека LibUSB. http://www.libusb.org/

10. Библиотека LibFTDI. http://www.intra2net.com/en/developer/libftdi/download.php

11. Форум Миландр: http://forum.milandr.ru/

12. Сайт программы логического анализатора. http://www.lxtreme.nl/ols/





※※※







Комментариев нет: