48448
[i] Работа программатора CMSIS-DAP с OpenOCD
Работает ли внутрисхемный гальванически развязанный USB-программатор Миландр (на базе стандарта CMSIS-DAP) с OpenOCD?
Материал из настоящей статьи, относящийся к микросхеме К1986ВЕ92QI, распространяется в том числе на микроконтроллеры К1986ВЕ92FI, К1986ВЕ92F1I и К1986ВЕ94GI
Да, работает. Детальнее ниже по статье.OpenOCD - это ПО с открытым исходным кодом для программирования и отладки различных микросхем. Программа реализует транспортный уровень доступа к микросхемам, вводя поддержку различных программаторов-отладчиков (J-Link, ST-Link, CMSIS-DAP, FTDI и др.), а также различного рода конфигурационных файлов для поддержки большого числа микросхем сторонних производителей. Последние, а именно конфигурационные файлы для поддержки микросхем, разрабатываются самими разработчиками микросхем (на деле это связка файлов, содержащая в себе алгоритм доступа к памяти микросхемы, то есть загрузочную программу, а также конфигурационный файл для конкретной микросхемы, на которую распространяется данный загрузчик, и он описывает, с каких адресов можно работать с данным загрузчиком в рамках микросхемы).
Из абзаца выше видно, что OpenOCD может работать с программаторами CMSIS-DAP. При этом программатор CMSIS-DAP производства компании Миландр полностью соответствует стандарту и также может использоваться для работы в OpenOCD. ПО OpenOCD для реализации работы с программатором CMSIS-DAP в официальном дистрибутиве предоставляет конфигурационный файл cmsis-dap.cfg, который доступен по пути ./interface (папка содержит конфигурационные файлы для всех отладчиков, с которыми может работать OpenOCD). Соответственно, при старте работы программы через ключ -f должен подключаться конфигурационный файл программатора (в случае CMSIS-DAP это cmsis-dap.cfg, но это может быть и jlink.cfg, если применен программатор от Segger - см. примечание), через который осуществляется подключение к микросхеме, а также конфигурационный файл для самой микросхемы.
В составе официального дистрибутива OpenOCD есть множество конфигурационных файлов по работе с микроконтроллерами разных производителей. Стоит отметить, что программатор компании Миландр сможет с ними работать, если документация на эти микроконтроллеры заявляет работу с CMSIS-DAP. Также важно подчеркнуть, что в составе официальной ветки OpenOCD имеется драйвер для работы с Flash-памятью микроконтроллера К1986ВЕ92QI, а также конфигурационный файл для удобной работы с ним. Так, если используется связка программатора CMSIS-DAP производства компании Миландр и микроконтроллера К1986ВЕ92QI, то достаточно перейти из командной строки в папку с исполняемым файлом openocd.exe и вызвать команду (соответственно, физическое подключение также должно быть выполнено):
>> openocd.exe -f cmsis-dap.cfg -f mdr32f9q2i.cfg
После этого OpenOCD запустит сервера GDB и telnet и будет готов к работе. Если при запуске OpenOCD не может найти файлы cmsis-dap.cfg и mdr32f9q2i.cfg, то можно указать полный путь до данных файлов, включая диск, на котором они расположены (например, "H:\OpenOCD-20200701-0.10.0\share\openocd\scripts\interface\cmsis-dap.cfg" и "H:\OpenOCD-20200701-0.10.0\share\openocd\scripts\target\mdr32f9q2i.cfg")
Примечание:
Выше приведен пример запуска OpenOCD в связке программатора CMSIS-DAP с микроконтроллером К1986ВЕ92QI, однако, в качестве программатора, на основе другой статьи информационного портала отдела технической поддержки, может применяться, например, и программатор J-Link от Segger, соответственно, запуск OpenOCD должен сопровождаться следующей командой:
>> openocd.exe -f jlink.cfg -f mdr32f9q2i.cfg