Vector IDE

Аватара пользователя
Лашкевич Максим
Сообщения: 342
Зарегистрирован: 30 дек 2015, 10:38

Re: Vector IDE

Сообщение Лашкевич Максим » 18 фев 2016, 18:31

Мы тоже не знаем некоторых ошибок OpenOCD. Некоторые пояснил мой коллега, а остальные... думаю, пояснить могут или избранные разработчики OpenOCD или чтение документации/кода OpenOCD. У нас тоже при подключении выводятся некоторые похожие ошибки.
Касательно галочек на вкладке Startup. У меня вот такие:
Изображение
Опять же, повторюсь, все отладочные конфигурации прописаны в воркспейсе с примерами, с которыми поставляется наша среда. Вы пробовали открыть воркспейс? Там все сконфигурировано как надо...
И там же есть конфигурация для прошивки и для оперативки - переключается в файле линкера.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

andrew
Сообщения: 11
Зарегистрирован: 17 фев 2016, 11:34

Re: Vector IDE

Сообщение andrew » 19 фев 2016, 10:40

Максим, спасибо еще раз за помощь в настройке среды разработки.
Можете выложить лог запуска OpenOCD вашей отладки? Хочу посмотреть что у Вас тоже есть такие же ошибки как и у меня.

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

Разница с Вашей сборкой такая:
1) toolchain использую от launchpad версия: gcc version 5.2.1 20151202 (release) [ARM/embedded-5-branch revision 231848] (GNU Tools for ARM Embedded Processors). Вы используете от Mentor'а - Code Sourcery;
2) eclipse у меня версии MARS.1 32-bit
3) make и coreutils использую gnu
5) JLink драйвер версии 5.10
4) Zadig версии 2.2

Как видно принципиальных различий нет. В данный момент вроде все работает. Осталось разобраться с нюансами и с ошибками, которые выдает OpenOCD. Просто с ними сложно работать и понимать где "просто" ошибка, а где ошибка из-за которой все плохо.

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

Еще вопрос. Что именно имеется ввиду в примере Example_LED_blinking при работе с портами ввода вывода?
Имеется ли errata на процессор?

Аватара пользователя
Disona
Сообщения: 92
Зарегистрирован: 28 ноя 2015, 22:03
Откуда: Москва

Re: Vector IDE

Сообщение Disona » 19 фев 2016, 11:06

andrew писал(а): Еще вопрос. Что именно имеется ввиду в примере Example_LED_blinking при работе с портами ввода вывода?
Имеется ли errata на процессор?
Errata пока нет, насколько мы знаем. А имеется в виду проблема, которая может возникнуть при работе с регистром GPIOxx->DATA:
Инфо из документации на микроконтроллер писал(а):DATA
По чтению: Данные на входе порта
По записи: Значение выхода порта. Чтение записанного значения возможно после задержки в 2 такта системной частоты из-за пересинхронизации входного значения
Это означает, что вот такая последовательность операций при использовании оптимизации приведёт к ошибке:

Код: Выделить всё

NT_GPIOC->DATA |= (1 << 2);
NT_GPIOC->DATA |= (1 << 3);
Так как вторая строка - это чтение + запись.
Если например, изначально DATA = b0000 0000, то после выполнения этих строк вы получите DATA = b0000 1000: на второй операции процессор прочтёт "устаревшее" значение регистра b0000 0000, проведёт логическое ИЛИ с (1 << 3), и запишет в DATA. Поэтому второй битик так и останется пустым.

Логи запуска процессора скоро предоставим.
С уважением,
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.

Аватара пользователя
Лашкевич Максим
Сообщения: 342
Зарегистрирован: 30 дек 2015, 10:38

Re: Vector IDE

Сообщение Лашкевич Максим » 19 фев 2016, 11:25

Кое-какие логи есть на bitbucket НИИЭТ - https://bitbucket.org/niietcm4/niietcm4 ... /3/openocd . Для обсуждения OpenOCD и бесплатных сред разработки есть отдельные темы на форуме НИИЭТ (http://forum.niiet.ru/viewforum.php?f=37). Возможно, вопросы, не касающиеся напрямую VectorIDE, стоит задавать либо там, либо в отдельных темах на нашем форуме.

В примере с портами ввода-вывода есть еще функция, инициализирующая периферию ножек на значения по-умолчанию. Это необходимо из-за проблемы с неработоспособностью альтернативной функции, если она задействована на какой-либо другой ножке, даже если та другая ножка используется как обычный GPIO. Этого пока нет в описании на МК, наверное, скоро должно появиться или исправиться в новых ревизиях - думаю, это тоже стоит уточнять на форуме НИИЭТ.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

sergey_the_great
Сообщения: 17
Зарегистрирован: 09 дек 2016, 18:55

Re: Vector IDE

Сообщение sergey_the_great » 09 дек 2016, 19:09

Лашкевич Максим писал(а):А еще я вам советую найти компьютер на 64 разряда, установить VectorIDE там, попробовать запустить все там "из коробки", а потом уже, видя как оно должно работать, пробовать запускать на своем.
Скажите пожалуйста, как изменить конфигурацию из примера с миганием светодиодов, чтоб программа записалась во flash и автоматически запускалась после включения контроллера?

sergey_the_great
Сообщения: 17
Зарегистрирован: 09 дек 2016, 18:55

Re: Vector IDE

Сообщение sergey_the_great » 09 дек 2016, 19:11

Скажите пожалуйста, как изменить программу примера с миганием светодиодов, чтоб прошивка сохранялась во FLASH и запускалась сама при включении платы без VectorIDE?

sergey_the_great
Сообщения: 17
Зарегистрирован: 09 дек 2016, 18:55

Re: Vector IDE

Сообщение sergey_the_great » 09 дек 2016, 19:13

Скажите пожалуйста, как изменить программу примера с миганием светодиодов, чтоб прошивка сохранялась во FLASH и запускалась сама при включении платы без VectorIDE?

Аватара пользователя
Лашкевич Максим
Сообщения: 342
Зарегистрирован: 30 дек 2015, 10:38

Re: Vector IDE

Сообщение Лашкевич Максим » 10 дек 2016, 16:36

Добрый день. Там всё для этого уже сделано. В файле управления компоновкой build.ld раскомментируйте нужную строчку.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

sergey_the_great
Сообщения: 17
Зарегистрирован: 09 дек 2016, 18:55

Re: Vector IDE

Сообщение sergey_the_great » 12 дек 2016, 08:13

Я раскомментировал в build.ld строчку
INCLUDE niiet_flash.ld,
INCLUDE niiet_ram.ld - наоборот закомментировал.

в startup_MCP_gcc.S сделал:

// ldr r0, = _estack /* Эти две строки - загрузка SP адресом 2000а000 в случае, если флешка потёрта. Если проект шьётся во флеш - // msr msp, r0 /* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/

в Debug Configuration - Startup убрал Debug in RAM

нажимаю Debug, программа подвисает и при включении и выключении контроллера не запускается сама.
Что еще я забыл сделать, чтоб прошивка работала из FLASH? Из RAM все работает.

Аватара пользователя
Лашкевич Максим
Сообщения: 342
Зарегистрирован: 30 дек 2015, 10:38

Re: Vector IDE

Сообщение Лашкевич Максим » 12 дек 2016, 12:59

В данном примере оставьте загрузку стека в startup_MCP_gcc.S как было, остальное все верно сделали. Пересоберите проект (операция клин, потом билд) и должно все заработать - только что сам проверил. После Debug что именно происходит? На main отладчик встает? Что пишет консоль openocd?
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

Ответить