|
Информационный портал технической поддержки Центра проектирования интегральных микросхем |
Помимо самой среды Visual Studio Code, также понадобятся следующие программные средства:
1.GNU RISC-V Embedded GCC – набор программ (компилятор, ассемблер, компоновщик, библиотеки, отладчик GDB), которые необходимы для разработки ПО на устройствах с ядром RISC-V. Так как пакет xPack собирается разработчиками для нескольких платформ, скачивать нужно архив для целевой ОС.
2. Windows Build Tools (при использовании ОС Windows) – набор программ (make, rm), которые необходимы для сборки и очистки проекта.
3. OpenOCD – ПО для программирования и отладки устройств. OpenOCD для ОС Windows, собранный с поддержкой МК MDR12065 доступен для скачивания на официальном сайте компании «Миландр», а также в конце статьи в разделе «Программное обеспечение». При использовании ОС Linux версию OpenOCD с поддержкой микросхем компании Миландр можно собрать самостоятельно (см. "[i] Компиляция OpenOCD из исходных данных").
В самой среде Visual Studio Code потребуются следующие расширения:

В конце статьи приложен архив с шаблоном проекта:

Рисунок 2 – Шаблон проекта
В этом шаблоне расположены все необходимые файлы:
Перед запуском отладки необходимо предварительно собрать проект. Для этого надо открыть вкладку Terminal в меню, выбрать пункт Run Build Task, а затем в появившемся списке указать требуемую конфигурацию сборки.

Рисунок 3 – Сборка проекта
В файле tasks.json описано, какие команды вызываются при вызове каждой из задач – с каким ключом CONFIG вызывается команда make.
Сборка проекта осуществляется в папке build, в ней располагаются все собранные файлы, а также добавляется файл current_config.mk c текущей конфигурацией. По результатам сборки создаются файлы программы .elf и .hex, а также вспомогательные .map и .lst. Их название соответствует названию проекта, заданному в settings.json с помощью PROJECT_NAME.
Также по результатам успешной сборки в терминале выводится информация о размере собранного elf-файла.
В качестве примера соберем проект в конфигурации "Build: MDR12065 FLASH" с запуском из FLASH-памяти.

Рисунок 4 – Результаты сборки
При повторном запуске той же задачи сборки будут пересобраны только измененные файлы. Если нужна полная пересборка ранее собранной конфигурации, сначала необходимо удалить собранные файлы с помощью задачи Clean build, и затем снова собрать проект в выбранной конфигурации.
Отладка осуществляется с помощью riscv-none-elf-gdb (который находится в составе xPack) и OpenOCD (скачанного/собранного ранее). Для работы с ними в среде Visual Studio Code используется плагин Cortex-Debug.
В шаблоне проекта уже реализованы необходимые настройки для запуска отладки в файле launch.json.
В качестве аппаратного отладчика выбрана используемая на отладочной плате микросхема FT2232HL.
В ОС Windows для работы OpenOCD с отладчиками требуется переустановить драйвер отладчика, как это описано в статье [i] Создание проекта для МК MDR12065 в IDE Eclipse.Если требуется выбрать другой аппаратный отладчик, например, JLink, нужно также обновить драйвера, а также в задаче в launch.json в поле configFiles вместо interface/ftdi/mdr-ft2232hl.cfg указать interface/jlink.cfg (см. [i] Создание проекта для МК MDR12065 в IDE Eclipse под рисунком 25).
Для запуска отладки нужно выбрать пункт View->OpenView->Run and Debug в меню или нажать на соответствующую кнопку на боковой панели.

Рисунок 5 – Переход в режим отладки
В выпадающем списке надо выбрать нужную отладочную конфигурацию. Ранее проект был собран в конфигурации "Build: MDR12065 FLASH", соответственно на этапе запуска отладки нужно выбрать конфигурацию "Debug MDR12065 (FT2232HL debugger)" и нажать зеленую стрелку.

Рисунок 6 – Запуск отладки
После запуска программа остановится в начале функции main(). Процессом исполнения программы можно управлять с помощью панели сверху. Регистры периферийных блоков доступны во вкладке XPERIPHERALS. Регистры ядра отображаются в VARIABLES->Registers.

Рисунок 7 – Процесс отладки
| Сайт: | https://support.milandr.ru |
| E-mail: | support@milandr.ru |
| Телефон: | +7 495 221-13-55 |