Миландр

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

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




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Eclipse +ARM GCC+ 1986ВЕ1Т + OpenOCD + Olimex ARM-USB
СообщениеДобавлено: 2015-фев-26 17:49 
Не в сети

Зарегистрирован: 2014-авг-08 10:42
Сообщения: 10
Откуда: ВНИИЭМ
Добрый день.
Хочу поделиться опытом сборки ПО для микроконтроллера (отладочной платы) 1986ВЕ1Т в среде разработки Eclipse, с использованием в качестве компилятора ARM-GCC и дебагера OpenOCD, работающего в связке с JTAG эмулятором от Olimex, под операционной системой Windows 7.
Данная инструкция предполагает установку на "голую" систему.
Весь необходимый инструментарий прилагается в архиве.

1. Установим драйвера для Olimex ARM-USB
Для этого воспользуемся программой Zadig. В выпадающем списке выбираем наш JTAG эмулятор и жмём Install Driver. Повторяем действие для Interface1.
Если установка драйвера завершилась неудачей, то перезагружаемся, удаляем устройство из диспетчера и ставим заново.
Открыть
Изображение
Закрыть


2. Копируем папку с OpenOCD в место, путь которого не содержит кириллических символов(на всякий случай).
Теперь можно проверить, видит ли дебагер нашу отладочную плату и наш микроконтроллер. Для этого открываем консоль в директории с исполнимыми файлами OpenOCD и запускаем с параметрами эмулятора и целевой платформы. Для случая с эмулятором ARM-USB-TINY-H необходимо ввести строчку: -f interface/olimex-arm-usb-tiny-h.cfg -f target/1986ве1т.cfg
Открыть
Изображение
Изображение
Закрыть


3. Устанавливаем ARM GNU Tools и msys.
В конце установки gcc ставим галочку Add path to environment variable. Путь к бинарникам MSYS, возможно придётся прописать вручную.
Открыть
Изображение
Закрыть


4. Распаковываем Eclipse и запускаем, установив перед этим Java Runtime Environment.

5. Настроим пути до OpenOCD
Заходим Window-> Preferences -> Run/Debug -> String Substitution, прописываем имя исполнимого файла и путь к нему.
Открыть
Изображение
Закрыть


6. Устанавливаем ARM GNU Eclipse plugin.
Для этого нажимаем Help->Install New Software
Открыть
Изображение
Закрыть

Add
Открыть
Изображение
Закрыть

В поле Location вводим http://gnuarmeclipse.sourceforge.net/updates и устанавливаем
Открыть
Изображение
Закрыть


7. Ипортируем пример проекта в среду и пробуем собрать.
Для новых проектов можно использовать этот пример, либо минимальный набор необходимых файлов, который включает в себя ld-скрипты и startup файл. В данном проекте startup написан на си, но я планирую переписать его на ассемблере.

8. Настраиваем отладку.
Для этого заходим в Debug Configurations
Открыть
Изображение
Закрыть

Выбираем GDB OpenOCD Debugging и создаём новую конфигурацию
Открыть
Изображение
Закрыть

Во вкладке Main указываем название проекта и elf-файл
Открыть
Изображение
Закрыть

Во вкладке Debugger в OpenOCD Config Options добавляем -f interface/olimex-arm-usb-tiny-h.cfg -f target/1986ве1т.cfg
Открыть
Изображение
Закрыть

Сохраняем конфигурацию, и можно пробовать запустить отладку.

Для прошивки без отладчика можно создать новую Run Configuration.
На скорую руку настройки выглядят следующим образом
Открыть
Изображение
Закрыть


Ссылка на архив


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Eclipse +ARM GCC+ 1986ВЕ1Т + OpenOCD + Olimex ARM-USB
СообщениеДобавлено: 2015-фев-26 18:07 
Не в сети

Зарегистрирован: 2014-мар-04 08:52
Сообщения: 53
Откуда: г. Зеленоград ЗАО "НТЦ ЭЛИНС"
Прошли аналогичный путь, должен сказать - достаточно тернистый. Зато удобсто использования - ууух! ;)
Хочу сказать - с точки зрения целостности данных для проекта, имеет смысл конфиги для openocd хранить локально с проектом и применять их явным образом. Тем более, там же можно создавать свои функции для работы в openocd.
PS: картинки не отображаются...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Eclipse +ARM GCC+ 1986ВЕ1Т + OpenOCD + Olimex ARM-USB
СообщениеДобавлено: 2015-фев-27 08:29 
Не в сети

Зарегистрирован: 2015-фев-06 11:48
Сообщения: 53
Добавлю одно, ни от кого не слышал и нигде не видел. Есть (правда немного не доделаны) файлы с описанием регистров для камней 1986ВЕ9х и 1986ВЕ1Т для плагина EmbSysRegister, что помогает при отладке.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Eclipse +ARM GCC+ 1986ВЕ1Т + OpenOCD + Olimex ARM-USB
СообщениеДобавлено: 2015-фев-27 09:29 
Не в сети

Зарегистрирован: 2014-мар-04 08:52
Сообщения: 53
Откуда: г. Зеленоград ЗАО "НТЦ ЭЛИНС"
Да вот Миландровцам бы этот файл создать самим и отдать в общее пользование. По сути, XML ведь выгрузить просто надо из собственных электронных данных...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Eclipse +ARM GCC+ 1986ВЕ1Т + OpenOCD + Olimex ARM-USB
СообщениеДобавлено: 2015-фев-27 10:16 
Не в сети

Зарегистрирован: 2015-фев-06 11:48
Сообщения: 53
Ну тут надо соблюдать определённую структуру, да ещё и описание, сам пока доделываю, часть описания в документации, часть в SPL. Делал сначала для плагина Coocox, но в итоге с ним пока несложилось, сконвертировал для Eclipe.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Eclipse +ARM GCC+ 1986ВЕ1Т + OpenOCD + Olimex ARM-USB
СообщениеДобавлено: 2015-апр-13 14:57 
Не в сети

Зарегистрирован: 2015-апр-10 22:42
Сообщения: 18
Добрый день! Проделал все по инструкции и столкнулся с проблемой. Нет возможности проводить отладку программ, которые используют прерывания. В моей программе используется системный таймер. при отладке, когда происходит прерывание дебаггер выдает строку:
"0x0000001c ?? ()" и дальше никуда не двигается - при вводе команды "step" повторно высылает эту ошибку. Может кто-нибудь сталкивался с подобным?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Eclipse +ARM GCC+ 1986ВЕ1Т + OpenOCD + Olimex ARM-USB
СообщениеДобавлено: 2015-апр-15 15:22 
Не в сети

Зарегистрирован: 2015-апр-10 22:42
Сообщения: 18
Разобрался.
http://forum.milandr.ru/viewtopic.php?f=33&t=2498&p=13537#p13537


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Eclipse +ARM GCC+ 1986ВЕ1Т + OpenOCD + Olimex ARM-USB
СообщениеДобавлено: 2015-апр-27 14:06 
Не в сети

Зарегистрирован: 2015-апр-27 11:09
Сообщения: 4
sguwenka писал(а):
PS: картинки не отображаются...

Картинки в спойлерах отображаются правильно. Ваша причина - ваши админы :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Eclipse +ARM GCC+ 1986ВЕ1Т + OpenOCD + Olimex ARM-USB
СообщениеДобавлено: 2015-май-07 15:46 
Не в сети

Зарегистрирован: 2012-окт-03 14:40
Сообщения: 23
g-coder писал(а):
Для новых проектов можно использовать этот пример, либо минимальный набор необходимых файлов, который включает в себя ld-скрипты и startup файл. В данном проекте startup написан на си, но я планирую переписать его на ассемблере.

Переписывать необязательно, здесь на форуме есть ссылка на готовый в ассемблере и скрипт компоновщика полноценный прилагается - viewtopic.php?p=13498#p13498

DeVdistress писал(а):
sguwenka писал(а):
PS: картинки не отображаются...

Картинки в спойлерах отображаются правильно. Ваша причина - ваши админы :)

Картинки, если что, есть в архиве.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Eclipse +ARM GCC+ 1986ВЕ1Т + OpenOCD + Olimex ARM-USB
СообщениеДобавлено: 2016-янв-27 13:24 
Не в сети

Зарегистрирован: 2016-янв-27 13:16
Сообщения: 1
Доброго времени суток!
Подскажите пожалуйста, как можно используя OpenOCD выкачать из памяти образ прошивки?
Заранее спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Eclipse +ARM GCC+ 1986ВЕ1Т + OpenOCD + Olimex ARM-USB
СообщениеДобавлено: 2016-янв-27 14:21 
Не в сети

Зарегистрирован: 2009-сен-21 12:39
Сообщения: 432
Для ВЕ9х из консоли Винды:
openocd -f interface/ftdi/olimex-jtag-tiny.cfg -f read_flash_1986.cfg
Предварительно состряпать файл read_flash_1986.cfg с содержимым
source [find target/mdr32f9q2i.cfg]
"init"
"halt"
dump_image rd_flash.bin 0x08000000 0x20000
"shutdown"
Для ВЕ1 надо, на первый взгляд, 0x08000000 заменить на 0x0. И надо подменить mdr32f9q2i.cfg на соответствующий для ВЕ1.
Что касается olimex-jtag-tiny.cfg, то посмотреть соответствующий для ARM-USB, но они (кажется) одинаковые.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Eclipse +ARM GCC+ 1986ВЕ1Т + OpenOCD + Olimex ARM-USB
СообщениеДобавлено: 2016-апр-20 09:39 
Не в сети

Зарегистрирован: 2016-апр-20 09:05
Сообщения: 1
Доброго времени суток. Прохожу путь описанный автором темы. Возникла проблема на этапе "6. Устанавливаем ARM GNU Eclipse plugin.
Для этого нажимаем Help->Install New Software"
установились все плагины кроме:
-GNU ARM C/C++ J-Link Debugging
-GNU ARM C/C++ OpenOCD Debugging
-GNU ARM C/C++ QEMU Debugging
При установке eclipse пишет Cannot complete the install because one or more required could not be found.
как можно добавить данные плагины в eclipse? использую eclipse luna


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Eclipse +ARM GCC+ 1986ВЕ1Т + OpenOCD + Olimex ARM-USB
СообщениеДобавлено: 2016-апр-21 12:56 
Не в сети
Аватара пользователя

Зарегистрирован: 2014-дек-09 15:26
Сообщения: 60
altair писал(а):
как можно добавить данные плагины в eclipse?

Вам сюда: How to install GNU ARM Eclipse?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Eclipse +ARM GCC+ 1986ВЕ1Т + OpenOCD + Olimex ARM-USB
СообщениеДобавлено: 2016-сен-23 12:00 
Не в сети

Зарегистрирован: 2016-сен-12 08:50
Сообщения: 5
Подскажите как правильно настроить проект для работы с J-Link отладчиком.
Процессор 1986ВЕ91Т


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

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


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

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


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

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