Миландр

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

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




Начать новую тему Ответить на тему  [ Сообщений: 39 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: GNU ARM Eclipse + SEGGER J-Link software
СообщениеДобавлено: 2016-фев-27 18:01 
Не в сети
Аватара пользователя

Зарегистрирован: 2014-дек-09 15:26
Сообщения: 65
Утилита для программирования внутреннего EEPROM через J-Link

Тем, кто хотел бы использовать J-Link c драйверами и софтом от SEGGER,
при этом обойтись без проприетарных средства разработки от Keil и IAR:

Milandr MCU 1986x flashing with J-Link

Позволяет:

    Программировать внутренний EEPROM микроконтроллера используя
    ARM GNU toolchain.

Проект содержит GDB скрипт на Python (JFlash.py) и загрузчик (LOADER).

JFlash.py управляет процессом стирания, записи и проверки EEPROM,
а так же переопределяет команду GDB load для встраивания в процесс
отладки из Eclipse.

LOADER реализует алгоритм стирания и записи EEPROM. За основу взят
RAMLoad редактор'а, спасибо!

Поддерживает: 1986ВЕ9х, 1986ВЕ1, 1986ВЕ3.

P.S.
Добавлена запись CRC-32 программы.


Последний раз редактировалось kravitz 2016-ноя-30 12:13, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GNU ARM Eclipse + SEGGER J-Link software
СообщениеДобавлено: 2016-фев-29 08:16 
Не в сети

Зарегистрирован: 2015-фев-06 11:48
Сообщения: 53
Цитата:
OpenOCD debugging Eclipse plug-in
does not support capturing of Serial Wire Output (SWO).


С этим не согласен. OpenOCD поддерживает отладочный вывод данных через SWO.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GNU ARM Eclipse + SEGGER J-Link software
СообщениеДобавлено: 2016-фев-29 11:23 
Не в сети
Аватара пользователя

Зарегистрирован: 2014-дек-09 15:26
Сообщения: 65
Yurock писал(а):
Цитата:
OpenOCD debugging Eclipse plug-in
does not support capturing of Serial Wire Output (SWO).

С этим не согласен. OpenOCD поддерживает отладочный вывод данных через SWO.

Речь о OpenOCD debugging Eclipse plug-in.
Цитата:
Цитата:
Unfortunately SWD support in the current OpenOCD version (0.8.x) is not that great, and we could not yet figure out a way to get the SWO tracing info out of OpenOCD, so currently there is no special tracing window available.

Плагин не поддерживает, а сам OpenOCD, да, поддерживает, если знаете как настроить работу с SWO под Windows, поделитесь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GNU ARM Eclipse + SEGGER J-Link software
СообщениеДобавлено: 2016-фев-29 13:47 
Не в сети

Зарегистрирован: 2015-фев-06 11:48
Сообщения: 53
Не знаю насколько это правильно должно работать.
Но удалось запустить ввод и вывод через консоль эклипса через вывод SWO. Отладка именно через "GDB OpenOCD Debugging". Скриншоты если что попозже выложу. И причём только что проверил на 1986ВЕ1Т. Программа из простого цикла.
Открыть
Код:
Open On-Chip Debugger 0.9.0 (2015-05-19-12:06)
Licensed under GNU GPL v2
For bug reports, read
   http://openocd.org/doc/doxygen/bugs.html
Info : JLink SWD mode enabled
swd
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
cortex_m reset_config sysresetreq
Info : J-Link V9 compiled Jan 21 2016 18:49:33
Info : J-Link caps 0xb9ff7bbf
Info : J-Link hw version 93000
Info : J-Link hw type J-Link
Info : J-Link max mem block 70200
Info : J-Link configuration
Info : USB-Address: 0x0
Info : Kickstart power on JTAG-pin 19: 0xffffffff
Info : Vref = 3.291 TCK = 0 TDI = 1 TDO = 1 TMS = 1 SRST = 1 TRST = 1
Info : J-Link JTAG Interface ready
Info : clock speed 1000 kHz
Info : SWD IDCODE 0x2ba01477
Info : 1986ве1т.cpu: hardware has 4 breakpoints, 2 watchpoints
Info : accepting 'gdb' connection on tcp/3333
undefined debug reason 7 - target needs reset
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000d78 msp: 0x20008000
semihosting is enabled
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000d78 msp: 0x20008000, semihosting
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000d78 msp: 0x20008000, semihosting
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000d78 msp: 0x20008000, semihosting
CPU: 72 MHz. CPU 1986VE1T.  SWD debug


semihosting: unsupported call 0x101
f

Enter char = f



CPU: 72 MHz. CPU 1986VE1T.  SWD debug
Закрыть


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GNU ARM Eclipse + SEGGER J-Link software
СообщениеДобавлено: 2016-фев-29 15:17 
Не в сети
Аватара пользователя

Зарегистрирован: 2014-дек-09 15:26
Сообщения: 65
Даже ввод работает? Я извиняюсь, а это не semihosting у вас случайно?

Я пытался направить вывод в файл, как-то так:
Код:
-f interface/jlink.cfg  -c "transport select swd" -f target/mdr32f9q2i.cfg -c "itm ports on" -c "tpiu config internal debug.log uart off 80000000"
но к сожалению, не работает...

Как у вас сконфигурирован OpenOCD?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GNU ARM Eclipse + SEGGER J-Link software
СообщениеДобавлено: 2016-фев-29 19:30 
Не в сети

Зарегистрирован: 2015-фев-06 11:48
Сообщения: 53
Да, семихостинг. Скрин из пол линукс, но в винде тоже самое.
https://yadi.sk/i/wNOaxVFppjp9V

Кстати, когда прописывал конфигурацию также, т.е.
Код:
-f interface/jlink.cfg  -c "transport select swd" ....

были глюки. В итоге сделал скрипт jlink_swd.cfg, куда сразу прописал "transport select swd".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GNU ARM Eclipse + SEGGER J-Link software
СообщениеДобавлено: 2016-мар-01 13:49 
Не в сети
Аватара пользователя

Зарегистрирован: 2014-дек-09 15:26
Сообщения: 65
Давайте определимся, who is who.

Semihosting это штука, которая позволяет частично переложить выполнение некой операции на отладчик (хост).
Реализован semihosting может быть по-разному, например для Cortex-M, в случае printf(), на нижнем уровне
обычно используется инструкция BKPT. То есть, при вызове printf() выполнение программы останавливается
и в дело вступает отладчик на хосте. Отладчик определяет, какую операцию требуется выполнить,
в данном случае - вывод в stdout, поэтому читает строку из памяти микроконтроллера и отображает ее в своем окне.
Semihosting реализован программно, и не использует дополнительных аппаратных интерфейсов. Но, как следует из
вышесказанного, semihosting оказывает значительное влияние на циклограмму работы программы.

Serial Wire Output (SWO) это специальный вывод интерфейса SWD, позволяющий осуществить передачу данных от
микроконтроллера - отладчику.

Semihosting не использует SWO. Можно еще здесь почитать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GNU ARM Eclipse + SEGGER J-Link software
СообщениеДобавлено: 2016-мар-01 19:49 
Не в сети

Зарегистрирован: 2015-фев-06 11:48
Сообщения: 53
Теперь разобрался, был не прав. Спасибо за информацию.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GNU ARM Eclipse + SEGGER J-Link software
СообщениеДобавлено: 2016-мар-01 20:27 
Не в сети
Аватара пользователя

Зарегистрирован: 2014-дек-09 15:26
Сообщения: 65
Yurock писал(а):
Теперь разобрался, был не прав. Спасибо за информацию.

Всегда пожалуйста)

Если удастся протестировать скрипт под Linux, напишите.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GNU ARM Eclipse + SEGGER J-Link software
СообщениеДобавлено: 2016-сен-26 09:46 
Не в сети

Зарегистрирован: 2016-сен-12 08:50
Сообщения: 5
Открыть kravitz писал
kravitz писал(а):
Тем, кто хотел бы использовать J-Link c драйверами и софтом от SEGGER,
при этом обойтись без проприетарных средства разработки от Keil и IAR:

Milandr MCU 1986x flashing with J-Link

Позволяет:

    Программировать внутренний EEPROM микроконтроллера используя
    ARM GNU toolchain.

Проект содержит GDB скрипт на Python (JFlash.py) и загрузчик (LOADER).

JFlash.py управляет процессом стирания, записи и проверки EEPROM,
а так же переопределяет команду GDB load для встраивания в процесс
отладки из Eclipse.

LOADER реализует алгоритм стирания и записи EEPROM. За основу взят
RAMLoad редактор'а, спасибо!

На данный момент работает только с 1986ВЕ9х.
Закрыть


Подскажите как можно установить пакет с локального диска, без использования Интернета?
Подозреваю что просто указать имя директории или архива в настройках репозитория.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GNU ARM Eclipse + SEGGER J-Link software
СообщениеДобавлено: 2016-сен-26 12:36 
Не в сети
Аватара пользователя

Зарегистрирован: 2014-дек-09 15:26
Сообщения: 65
andrew.borisov писал(а):
Подскажите как можно установить пакет с локального диска, без использования Интернета?
Подозреваю что просто указать имя директории или архива в настройках репозитория.

Как то так: Offline CMSIS packs install.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GNU ARM Eclipse + SEGGER J-Link software
СообщениеДобавлено: 2016-сен-26 18:37 
Не в сети

Зарегистрирован: 2016-сен-12 08:50
Сообщения: 5
Делаю все как описано выше.
Когда ставлю gdb-py - eclipse выдает сообщение:
Could not determine GDB version after sending: arm-none-eabi-gdb-py --version, response:
отладка не запускается.

Ставлю просто gdb в настройках отладчика. Отладка запускается. В функции не входит и отладка ведется как-то мягко говоря странно. Неожиданные переходы в линейной программе.

Разобрался, поставил верную версию python.
Отладка все равно начинается довольно странно. Уходит по неизвестному адресу и движение по шагам не привязывается к исходному коду.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GNU ARM Eclipse + SEGGER J-Link software
СообщениеДобавлено: 2016-сен-27 12:04 
Не в сети
Аватара пользователя

Зарегистрирован: 2014-дек-09 15:26
Сообщения: 65
andrew.borisov писал(а):
Отладка все равно начинается довольно странно. Уходит по неизвестному адресу и движение
по шагам не привязывается к исходному коду.

Проверьте, что программа загружается в EEPROM и работает (без отладки).

Далее проверьте следующие настройки:
Изображение

Начальный адрес после запуска отладчика может отображается некорректно - 0x0,
но при запуске программы Resume (F8) отладчик успешно переходит к первому оператору
функции main (точка останова по умолчанию), далее отладка выполняется без проблем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GNU ARM Eclipse + SEGGER J-Link software
СообщениеДобавлено: 2016-сен-29 19:21 
Не в сети

Зарегистрирован: 2016-сен-12 08:50
Сообщения: 5
Открыть
kravitz писал(а):
andrew.borisov писал(а):
Отладка все равно начинается довольно странно. Уходит по неизвестному адресу и движение
по шагам не привязывается к исходному коду.

Проверьте, что программа загружается в EEPROM и работает (без отладки).

Далее проверьте следующие настройки:
Изображение

Начальный адрес после запуска отладчика может отображается некорректно - 0x0,
но при запуске программы Resume (F8) отладчик успешно переходит к первому оператору
функции main (точка останова по умолчанию), далее отладка выполняется без проблем.
Закрыть


Спасибо, разобрался.
Подскажите при каких настройках программа будет записываться в флэш память процессора?
После снятия питания процессор ничего не делает.
Возможно ли сделать две настройки с прошивкой и как сейчас?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GNU ARM Eclipse + SEGGER J-Link software
СообщениеДобавлено: 2016-окт-01 15:42 
Не в сети
Аватара пользователя

Зарегистрирован: 2014-дек-09 15:26
Сообщения: 65
Добрый день! Невсегда есть возможность отвечать быстро.
andrew.borisov писал(а):
Подскажите при каких настройках программа будет записываться в флэш память процессора?

mdr1986x-JFlash - это загрузчик внутреннего EEPROM MCU через J-Link, и появился только потому, что
в оригинальном JFlash от SEGGER нет алгоритма для записи EEPROM mdr1986x.
Кроме непосредственного программирования EEPROM, mdr1986x-JFlash может встраиваться в процесс
загрузки программы отладчиком GDB в EEPROM при запуске отладки в Eclipse.
Загрузка программы в RAM или во внешний EEPROM с помощью mdr1986x-JFlash невозможна.
andrew.borisov писал(а):
После снятия питания процессор ничего не делает.

Вариантов немного: либо программа не записана в EEPROM либо работает некорректно.
В папке вашего проекта должен остаться лог загрузки: JFlash.log
andrew.borisov писал(а):
Возможно ли сделать две настройки с прошивкой и как сейчас?

Использовать утилиту mdr1986x-JFlash можно только для прошики внутрреннего EEPROM MCU.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 39 ]  На страницу 1, 2, 3  След.

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


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

Сейчас этот форум просматривают: Bing [Bot] и гости: 2


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

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