Vector IDE
Re: Vector IDE
Появилась проблемка - пока не могу понять - в какую сторону копать. При работе в памяти две программы (мигание с прерыванием на базе системного таймера и PWM на базе прерывания) работаю вполне. При загрузке во флешку первая записывается и работает в дальнейшем при перезагрузке, вторая - не работает - видимо просто стирает все. Иногда выдает ошибку:
Error in final launch sequence
Failed to execute MI command:
load C:\\mydocs\\VectorIDE\\VectorIDE_Examples\\Example_PWM_LDM_CM4\\Debug\\Example_PWM_LDM_CM4.elf
Error message from debugger back end:
Error finishing flash operation
Failed to execute MI command:
load C:\\mydocs\\VectorIDE\\VectorIDE_Examples\\Example_PWM_LDM_CM4\\Debug\\Example_PWM_LDM_CM4.elf
Error message from debugger back end:
Error finishing flash operation
Error finishing flash operation
первая 2,5кб вторая 4,5кб размером.
куда копать?
Error in final launch sequence
Failed to execute MI command:
load C:\\mydocs\\VectorIDE\\VectorIDE_Examples\\Example_PWM_LDM_CM4\\Debug\\Example_PWM_LDM_CM4.elf
Error message from debugger back end:
Error finishing flash operation
Failed to execute MI command:
load C:\\mydocs\\VectorIDE\\VectorIDE_Examples\\Example_PWM_LDM_CM4\\Debug\\Example_PWM_LDM_CM4.elf
Error message from debugger back end:
Error finishing flash operation
Error finishing flash operation
первая 2,5кб вторая 4,5кб размером.
куда копать?
- Лашкевич Максим
- Сообщения: 342
- Зарегистрирован: 30 дек 2015, 10:38
Re: Vector IDE
Снять в среде в настройке отладочной конфигурации галочки типа go main и выполнение всяких команд перед запуском, прошить, и начать по шагам идти прямо с первой команды по ассемблеру отладчиком и смотреть, на какой команде все сыпется. Сравнить две программы между собой, между работой в оперативке и во флеше. Скорее всего проблема где-то с инициализацией таймингов флеша, указателя таблицы векторов прерываний или что-то такое из этой серии.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Re: Vector IDE
При запуске программ на отладку в Vector IDE выскакивают почти всегда ошибки (no source available... и разные адреса)... в окошке Disassembly вот такая есть информация:
1ffffffe: 0x00000000 movs r0, r0
20000000: 0xfcff0220 vrev64.<illegal width 64> d18, d2
20000004: 0x00002109 lsrs r1, r4, #4
Это может быть причиной проблем при прошивке флеш-памяти?
1ffffffe: 0x00000000 movs r0, r0
20000000: 0xfcff0220 vrev64.<illegal width 64> d18, d2
20000004: 0x00002109 lsrs r1, r4, #4
Это может быть причиной проблем при прошивке флеш-памяти?
- Лашкевич Максим
- Сообщения: 342
- Зарегистрирован: 30 дек 2015, 10:38
Re: Vector IDE
no source available значит, что у отладчика нет исходного Сишного кода для отображения того места ассемблера, который сейчас открыт. Это происходит когда отладка попадает на какую-то библиотечную функцию из стандартной библиотеки. Это нормально, так почти всегда бывает.
20000000 это начало оперативной памяти, тут я ничего не могу сказать, правильные у вас там данные или нет. Это надо конкретный проект смотреть.
Если запустить пример Example_LED_blinking при работе из флеш, предварительно отключив в Debug Configurations на вкладке Startup
Set breakpoint at main
и
Continue
то после запуска в окне дизассемблера мы попадаем на метку Reset_Handler, а если шагать по ассемблерному коду, то шаги параллельно отображаются в файле startup_MCP_gcc.S
Видно, что ассемблерные команды на флеше совпадают с командами в этом файле, т.е. флешка прошита верно.
Если хотите, можно вручную запустить процесс прошивки. Откройте консоль gdb и напишите там (или какой там у вас выходной файл)
Это заставит openocd прошить этот файл.
Вот как это происходит у меня:
https://yadi.sk/i/3jlcQlc339co7S
20000000 это начало оперативной памяти, тут я ничего не могу сказать, правильные у вас там данные или нет. Это надо конкретный проект смотреть.
Если запустить пример Example_LED_blinking при работе из флеш, предварительно отключив в Debug Configurations на вкладке Startup
Set breakpoint at main
и
Continue
то после запуска в окне дизассемблера мы попадаем на метку Reset_Handler, а если шагать по ассемблерному коду, то шаги параллельно отображаются в файле startup_MCP_gcc.S
Видно, что ассемблерные команды на флеше совпадают с командами в этом файле, т.е. флешка прошита верно.
Если хотите, можно вручную запустить процесс прошивки. Откройте консоль gdb и напишите там
Код: Выделить всё
load Debug/Example_LED_blinking.elf
Это заставит openocd прошить этот файл.
Вот как это происходит у меня:
https://yadi.sk/i/3jlcQlc339co7S
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Re: Vector IDE
Максим! похожая картина у меня, как у Вас. Хорошо, буду разбираться. Большое спасибо!
Отредактировано 0:14 19.01.2017 - с Крещением всех Православных!
Проблема была в векторе прерываний(обращение к нему по некорректному адресу), как точно и заметил Максим (Спасибо!). Тестирую получившееся. Мигания, таймеры, шимы пошли. Вопрос с printf (указанные ключи линкования не дают пока результат - линкер ругается)...
Отредактировано 0:14 19.01.2017 - с Крещением всех Православных!
Проблема была в векторе прерываний(обращение к нему по некорректному адресу), как точно и заметил Максим (Спасибо!). Тестирую получившееся. Мигания, таймеры, шимы пошли. Вопрос с printf (указанные ключи линкования не дают пока результат - линкер ругается)...
- Лашкевич Максим
- Сообщения: 342
- Зарегистрирован: 30 дек 2015, 10:38
Re: Vector IDE
printf даже ни разу и не пробовал запускать... А куда, собственно, принтефить?
Это надо драйвер какой-то писать для RS или куда Вы там собираетесь выводить... Проще найти и вставить кастомную реализацию принтефа из интернета, сразу с нужным выводом в нужный интерфейс. А еще лучше принтефом вообще не пользоваться для motorcontrol задач (если у вас они).
Это надо драйвер какой-то писать для RS или куда Вы там собираетесь выводить... Проще найти и вставить кастомную реализацию принтефа из интернета, сразу с нужным выводом в нужный интерфейс. А еще лучше принтефом вообще не пользоваться для motorcontrol задач (если у вас они).
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Re: Vector IDE
printf стал копать, так как все практически примеры из стандартной библиотеки содержат его. потеряв день на варианты настройки среды для его правильной компиляции и линкования принял именно такое решение - написать свои функции для вывода символов и строк в UART. Параллельно нашел, вероятно, баг библиотеки - в retarget.h надо указать скорость передачи данных в 10 раз выше реальной скорости связи по UART - тогда работает - пока не разобрался до конца - проблема ли это реализации библиотеки, МК или среды.... - главное, что UART запустился...
Правда библиотека все больше становится кастомизированной.... в частности пришлось написать модуль retarget_mod для связи по UART на базе стандартного retarget из библиотеки...
Поместил инфу об этом на Bitbucket https://bitbucket.org/niietcm4/niietcm4 ... vector-ide
Правда библиотека все больше становится кастомизированной.... в частности пришлось написать модуль retarget_mod для связи по UART на базе стандартного retarget из библиотеки...
Поместил инфу об этом на Bitbucket https://bitbucket.org/niietcm4/niietcm4 ... vector-ide
Re: Vector IDE
Выкладываю пример чтения ADC и вывода значений в терминал с использованием UART2. Библиотеку NIIETCM4_PD постарался сохранить практически неизменной. Криво, но работает... комментами в тексте модулей постарался ответить на вопросы по работе и конфигурированию.
https://bitbucket.org/Mikhalich_master/ ... /downloads
https://bitbucket.org/Mikhalich_master/ ... /downloads
- Лашкевич Максим
- Сообщения: 342
- Зарегистрирован: 30 дек 2015, 10:38
Re: Vector IDE
Спасибо! Думаю, будет людям полезно. На форуме НИИЭТа тоже, если можно, напишите. В теме, например, http://forum.niiet.ru/viewtopic.php?f=37&t=491&start=10
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
-
- Сообщения: 17
- Зарегистрирован: 20 фев 2017, 18:39
Re: Vector IDE
Максим!
Установил VectorIDE и попытался открыть какой-либо из примеров
как сказано в руководстве :
"Откройте рабочее пространство C:\WorkSpaces\VectorIDE_Examples. Если
оно еще не открыто, это можно сделать в меню «File», пункт «Switch
Workspace», «Other…» или указать при запуске Eclipse....
... Соберите проект, нажав на кнопку панели инструментов,
либо выбрав в меню «Project» пункт «Build Project»",
но ничего не получается! После смены workspace в окне проектов пусто и
что больше всего удивляет, так это неактивный пункт меню Open Project.
Что я делаю не так? И что необходимо сделать для открытия готовых проектов?
Установил VectorIDE и попытался открыть какой-либо из примеров
как сказано в руководстве :
"Откройте рабочее пространство C:\WorkSpaces\VectorIDE_Examples. Если
оно еще не открыто, это можно сделать в меню «File», пункт «Switch
Workspace», «Other…» или указать при запуске Eclipse....
... Соберите проект, нажав на кнопку панели инструментов,
либо выбрав в меню «Project» пункт «Build Project»",
но ничего не получается! После смены workspace в окне проектов пусто и
что больше всего удивляет, так это неактивный пункт меню Open Project.
Что я делаю не так? И что необходимо сделать для открытия готовых проектов?