Vector IDE
- Лашкевич Максим
- Сообщения: 342
- Зарегистрирован: 30 дек 2015, 10:38
Re: Vector IDE
Мы тоже не знаем некоторых ошибок OpenOCD. Некоторые пояснил мой коллега, а остальные... думаю, пояснить могут или избранные разработчики OpenOCD или чтение документации/кода OpenOCD. У нас тоже при подключении выводятся некоторые похожие ошибки.
Касательно галочек на вкладке Startup. У меня вот такие:
Опять же, повторюсь, все отладочные конфигурации прописаны в воркспейсе с примерами, с которыми поставляется наша среда. Вы пробовали открыть воркспейс? Там все сконфигурировано как надо...
И там же есть конфигурация для прошивки и для оперативки - переключается в файле линкера.
Касательно галочек на вкладке Startup. У меня вот такие:
Опять же, повторюсь, все отладочные конфигурации прописаны в воркспейсе с примерами, с которыми поставляется наша среда. Вы пробовали открыть воркспейс? Там все сконфигурировано как надо...
И там же есть конфигурация для прошивки и для оперативки - переключается в файле линкера.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Re: Vector IDE
Максим, спасибо еще раз за помощь в настройке среды разработки.
Можете выложить лог запуска 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 на процессор?
Можете выложить лог запуска 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
Errata пока нет, насколько мы знаем. А имеется в виду проблема, которая может возникнуть при работе с регистром GPIOxx->DATA:andrew писал(а): Еще вопрос. Что именно имеется ввиду в примере Example_LED_blinking при работе с портами ввода вывода?
Имеется ли errata на процессор?
Это означает, что вот такая последовательность операций при использовании оптимизации приведёт к ошибке:Инфо из документации на микроконтроллер писал(а):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
Инженер-программист ООО "НПФ Вектор", Москва.
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.
- Лашкевич Максим
- Сообщения: 342
- Зарегистрирован: 30 дек 2015, 10:38
Re: Vector IDE
Кое-какие логи есть на bitbucket НИИЭТ - https://bitbucket.org/niietcm4/niietcm4 ... /3/openocd . Для обсуждения OpenOCD и бесплатных сред разработки есть отдельные темы на форуме НИИЭТ (http://forum.niiet.ru/viewforum.php?f=37). Возможно, вопросы, не касающиеся напрямую VectorIDE, стоит задавать либо там, либо в отдельных темах на нашем форуме.
В примере с портами ввода-вывода есть еще функция, инициализирующая периферию ножек на значения по-умолчанию. Это необходимо из-за проблемы с неработоспособностью альтернативной функции, если она задействована на какой-либо другой ножке, даже если та другая ножка используется как обычный GPIO. Этого пока нет в описании на МК, наверное, скоро должно появиться или исправиться в новых ревизиях - думаю, это тоже стоит уточнять на форуме НИИЭТ.
В примере с портами ввода-вывода есть еще функция, инициализирующая периферию ножек на значения по-умолчанию. Это необходимо из-за проблемы с неработоспособностью альтернативной функции, если она задействована на какой-либо другой ножке, даже если та другая ножка используется как обычный GPIO. Этого пока нет в описании на МК, наверное, скоро должно появиться или исправиться в новых ревизиях - думаю, это тоже стоит уточнять на форуме НИИЭТ.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
-
- Сообщения: 17
- Зарегистрирован: 09 дек 2016, 18:55
Re: Vector IDE
Скажите пожалуйста, как изменить конфигурацию из примера с миганием светодиодов, чтоб программа записалась во flash и автоматически запускалась после включения контроллера?Лашкевич Максим писал(а):А еще я вам советую найти компьютер на 64 разряда, установить VectorIDE там, попробовать запустить все там "из коробки", а потом уже, видя как оно должно работать, пробовать запускать на своем.
-
- Сообщения: 17
- Зарегистрирован: 09 дек 2016, 18:55
Re: Vector IDE
Скажите пожалуйста, как изменить программу примера с миганием светодиодов, чтоб прошивка сохранялась во FLASH и запускалась сама при включении платы без VectorIDE?
-
- Сообщения: 17
- Зарегистрирован: 09 дек 2016, 18:55
Re: Vector IDE
Скажите пожалуйста, как изменить программу примера с миганием светодиодов, чтоб прошивка сохранялась во FLASH и запускалась сама при включении платы без VectorIDE?
- Лашкевич Максим
- Сообщения: 342
- Зарегистрирован: 30 дек 2015, 10:38
Re: Vector IDE
Добрый день. Там всё для этого уже сделано. В файле управления компоновкой build.ld раскомментируйте нужную строчку.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
-
- Сообщения: 17
- Зарегистрирован: 09 дек 2016, 18:55
Re: Vector IDE
Я раскомментировал в 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 все работает.
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
В данном примере оставьте загрузку стека в startup_MCP_gcc.S как было, остальное все верно сделали. Пересоберите проект (операция клин, потом билд) и должно все заработать - только что сам проверил. После Debug что именно происходит? На main отладчик встает? Что пишет консоль openocd?
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.