К1921ВК01Т (ARM Cortex-M4F)

32-разрядные микроконтроллеры разработки ОАО "НИИЭТ"

Модераторы: pip, _sva_

Аватара пользователя
Лашкевич
Сообщения: 98
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Contact:

Re: К1921ВК01Т (ARM Cortex-M4F)

Сообщение Лашкевич » 09 янв 2018, 09:37

Ngg писал(а):
18 дек 2017, 15:39
Добрый день микроконтроллер зависает на функция вычисления Sin и Cos
uf.angle += 0.0001*rmp.output;
if(uf.angle >= 2.0*PI)
{
uf.angle = uf.angle-2.0*PI;
}

uf.freq = rmp.output;
uf.calc(&uf);
angle=uf.angle;
cosAngl=cos(angle);
sinAngl=sin(angle);
все представленные величины размерности double, так же бывают зависания на некоторых простых условия if(...), начинает работать только при переносе условия в какое либо другое место. Данная часть кода выполняется в прерывании по таймеру 10кГц, при описании синуса через ряд Тейлора все исправно работает. Среда разработки Qt Creator. Сборка основана на ваших демо проектах. Отладочная плата ОАО "НИИЭТ".
Добрый день. Как именно зависает? Посмотрите через JTAG, куда попадает процессор. Вполне возможно, что синус и косинус вызываются как-то неправильно или не оттуда, и процессор встает на несуществующей инструкции или типа того. Пройдите по шагам это место, покажите дизассемблерный код места зависания. И вообще, крайне не рекомендуется пользоваться стандартными сишными функциями вычисления тригонометрии: они реализованы в формате double, очень медленные и не поддерживают в вычислениях модуль FPU (потому что он float). Найдите быстрые табличные реализации и используйте их, и всегда контролируйте в окне дизассеблера, используется ли модуль FPU. Посмотрите рекомендации презентации отсюда (http://motorcontrol.ru/courses/courses_mc01/ , день три, там pdf).
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/

rasulikv
Сообщения: 2
Зарегистрирован: 15 янв 2018, 15:38
Предприятие: КВ-Системы

Re: К1921ВК01Т (ARM Cortex-M4F)

Сообщение rasulikv » 15 янв 2018, 15:58

Добрый день. Работаю в сетапе JetLink9 + VectorCARD +VectorIDE, и все было хорошо, пока я не ткнул в Run до того как OpenOCD полностью сцепился с МК. Теперь он сцепляться не хочет, консоль выдает следующее:
| Показать
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 : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
adapter speed: 2000 kHz
adapter_nsrst_delay: 100
jtag_ntrst_delay: 100
none separate
cortex_m reset_config sysresetreq
trst_only separate trst_push_pull
adapter speed: 1500 kHz
Info : No device selected, using first device.
Info : J-Link V9 compiled Oct 6 2017 16:38:28
Info : Hardware version: 9.10
Info : VTarget = 3.303 V
Info : clock speed 1500 kHz
Error: JTAG scan chain interrogation failed: all ones
Error: Check JTAG interface, timings, target power, etc.
Error: Trying to use configured scan chain anyway...
Error: k1921vk01t.cpu: IR capture error; saw 0x0f not 0x01
Warn : Bypassing JTAG setup events due to errors
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Error: Could not initialize the debug port
Error: JTAG scan chain interrogation failed: all ones
Error: Check JTAG interface, timings, target power, etc.
Error: Trying to use configured scan chain anyway...
Error: k1921vk01t.cpu: IR capture error; saw 0x0f not 0x01
Warn : Bypassing JTAG setup events due to errors
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Error: Could not initialize the debug port
Error: Target not examined yet
in procedure 'reset' called at file "C:\Program Files (x86)\VectorIDEv1.2\Eclipse\\..\openocd/kits/k1921vk01t_jlink/simple_connect.cfg", line 15
in procedure 'ocd_bouncer'
Пробовал вставлять JetLink в другие USB, переустанавливать ему дрова. Мог ли я убить контроллер таким образом? Если нужно стереть флеш, то как подать нужную по даташиту команду во FLASH_FULL_ERASE с подтянутой ножкой H2?

Аватара пользователя
Лашкевич
Сообщения: 98
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Contact:

Re: К1921ВК01Т (ARM Cortex-M4F)

Сообщение Лашкевич » 15 янв 2018, 17:06

Добрый день. Сложно сказать, что произошло, но да, стереть контроллер в такой ситуации первое что надо попробовать. Как это делать разными способами описано в viewtopic.php?f=37&t=504&p=3556#p3558 (вверх/вниз полистайте там). Скрипты описанные лежат в дистибутиве VectorIDE в директории openocd

rasulikv писал(а):
15 янв 2018, 15:58
Добрый день. Работаю в сетапе JetLink9 + VectorCARD +VectorIDE, и все было хорошо, пока я не ткнул в Run до того как OpenOCD полностью сцепился с МК. Теперь он сцепляться не хочет, консоль выдает следующее:
| Показать
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 : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
adapter speed: 2000 kHz
adapter_nsrst_delay: 100
jtag_ntrst_delay: 100
none separate
cortex_m reset_config sysresetreq
trst_only separate trst_push_pull
adapter speed: 1500 kHz
Info : No device selected, using first device.
Info : J-Link V9 compiled Oct 6 2017 16:38:28
Info : Hardware version: 9.10
Info : VTarget = 3.303 V
Info : clock speed 1500 kHz
Error: JTAG scan chain interrogation failed: all ones
Error: Check JTAG interface, timings, target power, etc.
Error: Trying to use configured scan chain anyway...
Error: k1921vk01t.cpu: IR capture error; saw 0x0f not 0x01
Warn : Bypassing JTAG setup events due to errors
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Error: Could not initialize the debug port
Error: JTAG scan chain interrogation failed: all ones
Error: Check JTAG interface, timings, target power, etc.
Error: Trying to use configured scan chain anyway...
Error: k1921vk01t.cpu: IR capture error; saw 0x0f not 0x01
Warn : Bypassing JTAG setup events due to errors
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Error: Could not initialize the debug port
Error: Target not examined yet
in procedure 'reset' called at file "C:\Program Files (x86)\VectorIDEv1.2\Eclipse\\..\openocd/kits/k1921vk01t_jlink/simple_connect.cfg", line 15
in procedure 'ocd_bouncer'
Пробовал вставлять JetLink в другие USB, переустанавливать ему дрова. Мог ли я убить контроллер таким образом? Если нужно стереть флеш, то как подать нужную по даташиту команду во FLASH_FULL_ERASE с подтянутой ножкой H2?
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/

rasulikv
Сообщения: 2
Зарегистрирован: 15 янв 2018, 15:38
Предприятие: КВ-Системы

Re: К1921ВК01Т (ARM Cortex-M4F)

Сообщение rasulikv » 15 янв 2018, 18:23

Да, это помогло. Видимо каким то образом слетела настройка выводов порта как JTAGа. У меня сработал нииэтовский скрипт. Спасибо!
Лашкевич писал(а):
15 янв 2018, 17:06
Добрый день. Сложно сказать, что произошло, но да, стереть контроллер в такой ситуации первое что надо попробовать. Как это делать разными способами описано в viewtopic.php?f=37&t=504&p=3556#p3558 (вверх/вниз полистайте там). Скрипты описанные лежат в дистибутиве VectorIDE в директории openocd

rasulikv писал(а):
15 янв 2018, 15:58
Добрый день. Работаю в сетапе JetLink9 + VectorCARD +VectorIDE, и все было хорошо, пока я не ткнул в Run до того как OpenOCD полностью сцепился с МК. Теперь он сцепляться не хочет, консоль выдает следующее:
| Показать
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 : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
adapter speed: 2000 kHz
adapter_nsrst_delay: 100
jtag_ntrst_delay: 100
none separate
cortex_m reset_config sysresetreq
trst_only separate trst_push_pull
adapter speed: 1500 kHz
Info : No device selected, using first device.
Info : J-Link V9 compiled Oct 6 2017 16:38:28
Info : Hardware version: 9.10
Info : VTarget = 3.303 V
Info : clock speed 1500 kHz
Error: JTAG scan chain interrogation failed: all ones
Error: Check JTAG interface, timings, target power, etc.
Error: Trying to use configured scan chain anyway...
Error: k1921vk01t.cpu: IR capture error; saw 0x0f not 0x01
Warn : Bypassing JTAG setup events due to errors
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Error: Could not initialize the debug port
Error: JTAG scan chain interrogation failed: all ones
Error: Check JTAG interface, timings, target power, etc.
Error: Trying to use configured scan chain anyway...
Error: k1921vk01t.cpu: IR capture error; saw 0x0f not 0x01
Warn : Bypassing JTAG setup events due to errors
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Error: Could not initialize the debug port
Error: Target not examined yet
in procedure 'reset' called at file "C:\Program Files (x86)\VectorIDEv1.2\Eclipse\\..\openocd/kits/k1921vk01t_jlink/simple_connect.cfg", line 15
in procedure 'ocd_bouncer'
Пробовал вставлять JetLink в другие USB, переустанавливать ему дрова. Мог ли я убить контроллер таким образом? Если нужно стереть флеш, то как подать нужную по даташиту команду во FLASH_FULL_ERASE с подтянутой ножкой H2?

Ответить

Вернуться в «32-разрядные микроконтроллеры на ядре ARM Cortex»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость