Руководство по настройке и использованию открытого ПО

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

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

Руководство по настройке и использованию открытого ПО

Сообщение bkolbov » 14 дек 2015, 14:22

Целью данного руководства является демонстрация одного из возможных путей организации полноценного рабочего окружения
на основе открытого ПО для взаимодействия с микроконтроллерами на базе ядра ARM Cortex-M4 производства ОАО «НИИЭТ».

В данном случае для реализации среды разработки предлагается использовать:
• Qt Creator 3.4.2 – популярная и довольно мощная среда разработки на C/C++ с открытым исходным кодом,
на основе которой и будет построено рабочее окружение;
• GCC ARM Embedded 4.9 – открытый компилятор для ARM;
• OpenOCD – программа, необходимая для программирования и отладки,
в которую была добавлена поддержка микроконтроллеров НИИЭТ на базе ядра ARM Cortex-M4.

В качестве аппаратного отладчика в примерах использовался St-Link, как один из наиболее дешевых и распространённых,
но OpenOCD также позволяет использовать и другие отладочные устройства (полная информация в официальной документации на утилиту).
Вопрос установки отладчиков в данном руководстве не поднимается – подразумевается, что драйвера на отладчик установлены и
все необходимые настройки сделаны.

Рекомендации по настройке окружения ориентированы на микроконтроллер К1921ВК01Т и 32-битную версию Windows 7, но практически все рекомендации,
за исключением этапа установки необходимых утилит, справедливы и для настройки под Linux или Mac OS, так как все использованное ПО – кроссплатформенное.

Архив с последней версией руководства и сопутствующими материалами прикреплен к сообщению.
Вложения
opensource_guide_160113.zip
(6.33 Мб)
bkolbov
 
Сообщения: 22
Зарегистрирован: 14 дек 2015, 11:37

Re: Руководство по настройке и использованию открытого ПО

Сообщение Лашкевич » 30 дек 2015, 13:48

Добрый день.
Альтернативой использованию QT Creator является использование Eclipse. Мы на фирме разрабатываем ПО на Eclipse и нам он кажется немного более удобным по сравнению с QT Creator. Мы сделали готовую сборку (http://motorcontrol.ru/production/soft/vector-ide/) Eclipse+GCC+OpenOCD+GNU ARM Plugin, которая теоретически должна работать "из коробки" с JTAG эмулятором j-link или его клоном.
Более подробно написали в отдельной теме: http://forum.niiet.ru/viewtopic.php?f=37&t=491.
Предлагаем вам попробовать эту среду, и, если получится, подставить свой конфигурационный файл для St-Link и свой OpenOCD. Если заработает, можно сделать сборку еще более универсальной.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
Аватара пользователя
Лашкевич
 
Сообщения: 22
Зарегистрирован: 13 май 2015, 13:10
Откуда: Москва

Re: Руководство по настройке и использованию открытого ПО

Сообщение Andrew » 19 фев 2016, 17:53

Здравствуйте, коллеги!

С помощью коллег установил и настроил eclipse для программирования процессора k1921vk01t. К eclipse подключил OpenOCD.
При запуске OpenOCD выдает лог, в котором мелькают сообщения ERROR.
Интересует знать что за ошибки и прояснить как их можно устранить. Вполне возможно что не установил где-то галочку в настройках.
Журнал вывода OpenOCD прилагаю.

Console out OpenOCD 0.10.0-dev | Показать
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 ARM V8 compiled Nov 28 2014 13:44:46
Info : Hardware version: 8.00
Info : VTarget = 3.274 V
Info : clock speed 1500 kHz
Info : JTAG tap: k1921vk01t.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)
Info : k1921vk01t.cpu: hardware has 6 breakpoints, 4 watchpoints
Info : JTAG tap: k1921vk01t.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)
k1921vk01t.cpu: target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc
Error: JTAG-DP STICKY ERROR
Error: Failed to read memory at 0xf0000004
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)
Error: JTAG-DP STICKY ERROR
Error: Failed to read memory at 0xfffff000
Info : JTAG tap: k1921vk01t.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)
k1921vk01t.cpu: target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc
semihosting is enabled
Error: address + size wrapped(0xfffffffe, 0x00000004)
Error: JTAG-DP STICKY ERROR
Error: Failed to read memory at 0xfffff000
Info : JTAG tap: k1921vk01t.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)
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): 0xFFFFFFFE
(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)
Error: k1921vk01t.cpu -- clearing lockup after double fault
Polling target k1921vk01t.cpu failed, trying to reexamine
Info : k1921vk01t.cpu: hardware has 6 breakpoints, 4 watchpoints
Error: address + size wrapped(0xfffffffe, 0x00000004)
Error: JTAG-DP STICKY ERROR
Error: Failed to read memory at 0xfffff000
Error: JTAG-DP STICKY ERROR
Error: Failed to read memory at 0xfffffff8
Error: JTAG-DP STICKY ERROR
Error: Failed to read memory at 0xfffffff4
Error: JTAG-DP STICKY ERROR
Error: Failed to read memory at 0xfffffff8
Error: JTAG-DP STICKY ERROR
Error: Failed to read memory at 0xfffffff8
Andrew
 
Сообщения: 2
Зарегистрирован: 19 фев 2016, 17:34

Re: Руководство по настройке и использованию открытого ПО

Сообщение bkolbov » 20 фев 2016, 08:57

Andrew писал(а):Здравствуйте, коллеги!

С помощью коллег установил и настроил eclipse для программирования процессора k1921vk01t. К eclipse подключил OpenOCD.
При запуске OpenOCD выдает лог, в котором мелькают сообщения ERROR.
Интересует знать что за ошибки и прояснить как их можно устранить. Вполне возможно что не установил где-то галочку в настройках.
Журнал вывода OpenOCD прилагаю.

Микроконтроллер при этом программируется и отлаживается?
bkolbov
 
Сообщения: 22
Зарегистрирован: 14 дек 2015, 11:37

Re: Руководство по настройке и использованию открытого ПО

Сообщение Andrew » 20 фев 2016, 12:48

bkolbov писал(а):
Andrew писал(а):При запуске OpenOCD выдает лог, в котором мелькают сообщения ERROR.
Интересует знать что за ошибки и прояснить как их можно устранить.
Журнал вывода OpenOCD прилагаю.

Микроконтроллер при этом программируется и отлаживается?


Да микроконтроллер программируется.
Хочу узнать почему возникают ошибки. Из за чего?
При использовании платной среды, например IAR, ошибки также возникают?
При использовании Qt Creator такие же ошибки вылезут?
Если ошибки выдает openOCD тогда они должны быть во всех средах программирования.
У меня нет возможности установить IAR. Работать приходится только на свободных средах.

Для меня важно полностью разобраться с микроконтроллером. Спасибо за ответы.
Andrew
 
Сообщения: 2
Зарегистрирован: 19 фев 2016, 17:34

Re: Руководство по настройке и использованию открытого ПО

Сообщение bkolbov » 20 фев 2016, 14:48

Andrew писал(а):Да микроконтроллер программируется.
Хочу узнать почему возникают ошибки. Из за чего?
При использовании платной среды, например IAR, ошибки также возникают?
При использовании Qt Creator такие же ошибки вылезут?
Если ошибки выдает openOCD тогда они должны быть во всех средах программирования.
У меня нет возможности установить IAR. Работать приходится только на свободных средах.


Ошибки эти генерирует openOCD и связаны они с некоторыми ограничениями GDB. С другими средами, такими как IAR, KEIL это не связано.
Сама ошибка является безвредной и может просто игнорироваться. Подробнее о механизме возникновения можно прочитать в прикрепленном документе - там сохраненная страница из кэша гугла с подобным вашему вопросом и подробным ответом одного из разработчиков OpenOCD.
Вложения
openocd_error.pdf
(104.66 Кб)
bkolbov
 
Сообщения: 22
Зарегистрирован: 14 дек 2015, 11:37


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

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

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