Vector IDE

petrovitch
Сообщения: 17
Зарегистрирован: 20 фев 2017, 18:39

Re: Vector IDE

Сообщение petrovitch » 01 мар 2017, 10:41

Вот что поведал google при открытии первой же ссылки по
указанному Вами запросу:

The clean install on the laptop DOES work! It helped when I plugged the target into the laptop rather than my main pc!

So, all I need to do is getting it working on my development PC.
Both have clean installs as of today (both checked for updates).
Laptop (that works) is windows 10 x64. target appears as a "ST-Link Debug" with 3 driver files listed:
c:\WINDOWS\system32\DRIVERS\winusb.sys (v 10.0.10586.0)
c:\WINDOWS\system32\WdfCoInstaller-1009.dll (v1.9.7600.16385)
c:\WINDOWS\system32\WinUSBCoinstaller2.dll (v6.1.7600.16385)

PC (that does not work) in windows 7 x64. target appears as "STMicroelectronics STLink Dongle" with 3 driver files listed:
c:\WINDOWS\system32\DRIVERS\winusb.sys (v 6.1.7601.17514)
c:\WINDOWS\system32\WdfCoInstaller-1009.dll (v1.9.7600.16385)
c:\WINDOWS\system32\WinUSBCoinstaller2.dll (v6.1.7600.16385)

У меня в точности второй случай с драйверами и системой.
Не понимаю как подойти к исправлению ситуации.

Кстати у меня и ранее происходили чудеса. Так, например, мне удавалось работать с платами ST и
в Keil, и в CooCox, используя ST-Link. И совсем не получалось работать с ST-Link в SystemWorkbench (AC6)
и тем более когда пользовался рекомендациями ресурса http://gnuarmeclipse.github.io по созданию
своей сборки инструментов на базе Eclipse.

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

Re: Vector IDE

Сообщение Disona » 01 мар 2017, 10:45

petrovitch писал(а):
28 фев 2017, 19:02
Видимо ранее, когда я пытался работать с JetLink9, а потом с ST-Link, что-то
испортил мне Zadig.
Zadig подменяет оригинальные драйверы какими-то своими библиотеками. Но можно переключиться обратно. Для этого надо в диспетчере устройств выбрать устройство, нажать "Обновить драйвера" -> "Выполнить поиск драйверов на компьютере" ->"Выбрать из списка уже установленных драйверов" и выбрать там оригинальные драйвера. Конкретно указать не могу сейчас, но там разница вроде в названии - "J-Link" и "J-Link Driver". Один из них Задиговый, другой фирменный. Также не уверен, что Zadig затрагивает ST-Link.

Кстати, нужно быть аккуратным при установке оригинальных драйверов для "левого" J-Link (китайского клона). Ходят слухи, что оригинальный драйвера специально "портят" нефирменные джитаги
petrovitch писал(а):
28 фев 2017, 19:02
Заметил также, что после установки VectorIDE "из коробки" в проектах примеров
не прописан ни сам тулчейн ни путь к нему. Это может влиять?
Это может влиять на компиляцию. Вылезет ошибка что-то вроде "Program "make" not found in path". В любом случае, у вас нужная утилита даже не запустится.


Могу предложить ещё попробовать новую официальную сборку Openocd, v0.10.0. То, что встроено в вашу версию VectorIDE - это неофициальный релиз, а одна из сборок с их репозитория, куда внедрена поддержка Нииэтовского проца. Попробуйте скачать свежую сборку. Скачать можно здесь - верхняя строка, "Download".
В папке "VectorIDE/openocd" переименуйте папку "bin" в какой-нибудь "binBAK", а вместо неё вставьте папку "bin" из архива.
С уважением,
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.

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

Re: Vector IDE

Сообщение Лашкевич Максим » 01 мар 2017, 11:25

Мы проверили на другом компьютере с windows 7, там версия драйверов на stlink такая же, как у Вас (c:\WINDOWS\system32\DRIVERS\winusb.sys (v 6.1.7601.17514) ), но при этом всё работает.
Давайте еще посмотрим, что именно не может сделать openocd. В настройках отладочной конфигурации можно задать отладочный режим для openocd, добавить "-d 3" в config options:

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

-f "${eclipse_home}\..\openocd\kits\niiet_common.cfg" -s "${eclipse_home}\..\openocd" -d 3
Тогда openocd пишет много всякой отладочной информации. У меня, если jtag не вставлен в usb, помимо прочего мусора пишет

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

Debug: 252 609 hla_layout.c:42 hl_layout_open(): hl_layout_open
Debug: 253 610 stlink_usb.c:1602 stlink_usb_open(): stlink_usb_open
Debug: 254 610 stlink_usb.c:1619 stlink_usb_open(): transport: 1 vid: 0x0483 pid: 0x3748 serial: 
Error: 255 638 stlink_usb.c:1632 stlink_usb_open(): open failed
Debug: 256 638 hla_layout.c:49 hl_layout_open(): failed
Может быть у Вас напишет что-то поинтереснее, давайте посмотрим.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

petrovitch
Сообщения: 17
Зарегистрирован: 20 фев 2017, 18:39

Re: Vector IDE

Сообщение petrovitch » 01 мар 2017, 14:31

Лашкевич Максим писал(а):
01 мар 2017, 11:25
В настройках отладочной конфигурации можно задать отладочный режим для openocd, добавить "-d 3" в config options:
В каком файле добавить эти строки?

Похоже мне придётся "чистить" систему, поскольку установлено много драйверов J-Link и ST-Link от
разных конструкторов. Это и NORDIC, и CYPRESS, и ST (Cube-MX, ST-Link V2), и TI.
Может поможет?

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

Re: Vector IDE

Сообщение Лашкевич Максим » 01 мар 2017, 14:42

Вот здесь
Изображение

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

petrovitch
Сообщения: 17
Зарегистрирован: 20 фев 2017, 18:39

Re: Vector IDE

Сообщение petrovitch » 01 мар 2017, 19:47

Буду пробовать предложенные варианты.

Сейчас пытаюсь удалить всё, что связано с ST-Link.

Мне товарищ помог запуститься на Keil v5 в связке с JetLink9. Плата у меня от LDM.
Программатор видится, но после якобы программирования визуально ничего не наблюдается.
Я пробовал какую-то программу от НИИЭТ blinky_led, но такое ощущение, что она не выполняется.
Пробовал Вашу сборку blinky под Keil, но там заметил, что необходимо настраивать характеристики
процессора в проекте, хотя проект компилируется.
Я когда пытался собрать что-то из пустого проекта или адаптировать Ваш, компилятор всегда
ругался прежде всего на файл core_cm4.h, хотя у меня он был в проекте. В вашей сборке всё вроде
тоже самое, но проблем с компиляцией нет! (????).
Я всё же склонен к варианту с Eclipse.

petrovitch
Сообщения: 17
Зарегистрирован: 20 фев 2017, 18:39

Re: Vector IDE

Сообщение petrovitch » 02 мар 2017, 10:13

Установил VectorIDE на чистую систему.
Соединение с эмулятором и запись программы состоялись.
но дальше опять непонятная ошибка. Привожу вывод в консоли:

Open On-Chip Debugger 0.10.0-dev-00189-g554313b-dirty (2016-01-12-08:19)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
adapter speed: 2000 kHz
adapter_nsrst_delay: 100
none separate
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : clock speed 1800 kHz
Info : STLINK v2 JTAG v28 API v2 SWIM v7 VID 0x0483 PID 0x3748
Info : using stlink api v2
Info : Target voltage: 3.225790
Info : k1921vk01t.cpu: hardware has 6 breakpoints, 4 watchpoints
k1921vk01t.cpu: target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc
Info : unknown chipid, assuming K1921VK01T
flash 'niietcm4' found at 0x00000000
Started by GNU ARM Eclipse
Info : accepting 'gdb' connection on tcp/3333
Error: address + size wrapped(0xfffffffe, 0x00000004)
k1921vk01t.cpu: target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x0000026c msp: 0x20000410
semihosting is enabled
Error: address + size wrapped(0xfffffffe, 0x00000004)
Error: address + size wrapped(0xffffffff, 0x00000004)
Error: address + size wrapped(0xffffffff, 0x00000004)
k1921vk01t.cpu: target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc, semihosting
===== arm v7m registers
(0) r0 (/32): 0x00000000
(1) r1 (/32): 0x00000000
(2) r2 (/32): 0x00000000
(3) r3 (/32): 0x00000000
(4) r4 (/32): 0x00000000
(5) r5 (/32): 0x00000000
(6) r6 (/32): 0x00000000
(7) r7 (/32): 0x00000000
(8) r8 (/32): 0x00000000
(9) r9 (/32): 0x00000000
(10) r10 (/32): 0x00000000
(11) r11 (/32): 0x00000000
(12) r12 (/32): 0x00000000
(13) sp (/32): 0xFFFFFFFC
(14) lr (/32): 0xFFFFFFFF
(15) pc (/32): 0x20001244 (dirty)
(16) xPSR (/32): 0x01000000
(17) msp (/32): 0xFFFFFFFC
(18) psp (/32): 0x00000000
(19) primask (/1): 0x00
(20) basepri (/8): 0x00
(21) faultmask (/1): 0x00
(22) control (/2): 0x00
(23) d0 (/64): 0x0000000000000000
(24) d1 (/64): 0x0000000000000000
(25) d2 (/64): 0x0000000000000000
(26) d3 (/64): 0x0000000000000000
(27) d4 (/64): 0x0000000000000000
(28) d5 (/64): 0x0000000000000000
(29) d6 (/64): 0x0000000000000000
(30) d7 (/64): 0x0000000000000000
(31) d8 (/64): 0x0000000000000000
(32) d9 (/64): 0x0000000000000000
(33) d10 (/64): 0x0000000000000000
(34) d11 (/64): 0x0000000000000000
(35) d12 (/64): 0x0000000000000000
(36) d13 (/64): 0x0000000000000000
(37) d14 (/64): 0x0000000000000000
(38) d15 (/64): 0x0000000000000000
(39) fpscr (/32): 0x00000000
===== Cortex-M DWT registers
(40) dwt_ctrl (/32)
(41) dwt_cyccnt (/32)
(42) dwt_0_comp (/32)
(43) dwt_0_mask (/4)
(44) dwt_0_function (/32)
(45) dwt_1_comp (/32)
(46) dwt_1_mask (/4)
(47) dwt_1_function (/32)
(48) dwt_2_comp (/32)
(49) dwt_2_mask (/4)
(50) dwt_2_function (/32)
(51) dwt_3_comp (/32)
(52) dwt_3_mask (/4)
(53) dwt_3_function (/32)

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

Re: Vector IDE

Сообщение Лашкевич Максим » 02 мар 2017, 11:03

Поздравляю! Ошибки никакой нет, нормальный лог! Всё так и должно быть. По поводу

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

Error: address + size wrapped(0xfffffffe, 0x00000004)
в гуглах пишут

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

In ARMv7-M, 0xfffffffX is a special value for the return address that
is placed in the link register when an exception is taken. When the
exception handler returns and the PC gets loaded with this special
value, the core knows that it should perform exception return instead
of a normal branch. This is one of the nifty features that makes it
possible to write exception handlers as regular C functions.

However, when GDB follows the stack trace from inside an exception
handler, it ignores the fact that 0xfffffffX is a special value and
tries to load a word (0x00000004 bytes) from that address as if it was
a regular return address. OpenOCD warns that the read wraps around the
32-bit address space, and also emits some MEM_AP errors from trying to
access these locations. Upon receiving the errors, GDB assumes it has
reached the start of the stack trace and stops.

The error is completely harmless but could be avoided if GDB was made
aware of the special value and how to get the true return address.
т.е. the error is completely harmless
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

petrovitch
Сообщения: 17
Зарегистрирован: 20 фев 2017, 18:39

Re: Vector IDE

Сообщение petrovitch » 02 мар 2017, 14:44

Правда итог неоднозначный.
Eclipse работает, но не на моей машине.
Kail работает на моей, но душа к нему не лежит.
... ???

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

Re: Vector IDE

Сообщение Лашкевич Максим » 02 мар 2017, 16:21

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

Ответить