Страница 3 из 29

Re: Vector IDE

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

Re: Vector IDE

Добавлено: 19 фев 2016, 10:40
andrew
Максим, спасибо еще раз за помощь в настройке среды разработки.
Можете выложить лог запуска 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 на процессор?

Re: Vector IDE

Добавлено: 19 фев 2016, 11:06
Disona
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. Поэтому второй битик так и останется пустым.

Логи запуска процессора скоро предоставим.

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. Этого пока нет в описании на МК, наверное, скоро должно появиться или исправиться в новых ревизиях - думаю, это тоже стоит уточнять на форуме НИИЭТ.

Re: Vector IDE

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

Re: Vector IDE

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

Re: Vector IDE

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

Re: Vector IDE

Добавлено: 10 дек 2016, 16:36
Лашкевич Максим
Добрый день. Там всё для этого уже сделано. В файле управления компоновкой build.ld раскомментируйте нужную строчку.

Re: Vector IDE

Добавлено: 12 дек 2016, 08:13
sergey_the_great
Я раскомментировал в 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 все работает.

Re: Vector IDE

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