|
Информационный портал технической поддержки Центра проектирования интегральных микросхем |
Статья содержит информацию по настройке среды Visual Studio Code для микросхемы К1986ВЕ8Т. В основе файлов сборки файлы из примера для Eclipse.
Для работы, помимо самой среды Visual Studio Code, нужны:
После скачивания данного ПО можно добавить пути к папкам bin с исполняемыми файлами в системный PATH (Windows / Linux). В предлагаемом шаблоне проекта пути к инструментам указываются локально в файле settings.json - это позволяет хранить несколько версий тулчейна в системе и не править PATH.
В самой среде Visual Studio Code потребуются следующие расширения:
- Стандартные С/С++ и C/C++ Extension Pack от Microsoft.
- Расширение Cortex-Debug, а также связанные с ним плагины, для отладки.
Рисунок 1 - Расширения для VSCode2. Сборка проекта
В конце статьи приложен архив с шаблоном проекта:
Рисунок 2 - Шаблон проекта2.1. Структура шаблона проекта
В этом шаблоне расположены все необходимые файлы:
- src/main.c - основной файл программы, реализующий моргание светодиодов на отладочной плате разработки компании Миландр для К1986ВЕ8Т.
- папка Library - папка с библиотекой SPL для микросхемы К1986ВЕ8Т, включая файл startup_K1986BE8T.S.
- папка linker - папка со скриптом сборки K1986BE8T.ld для запуска программы из ОЗУ.
- папка openocd - папка с конфигурационными файлами OpenOCD: jlink.cfg, cmsis-dap.cfg и K1986BE8T.cfg.
- папка svd - папка с файлом System View Description MDR1986VE8.svd, с помощью которого далее можно будет просматривать регистры периферийных блоков под отладкой.
- Makefile - файл с правилами сборки проекта. Файлы при сборке собираются в папку build.
- .vscode/settings.json - файл с общими настройками. Здесь хранится имя проекта (PROJECT_NAME) и пути к установленным инструментам (GCC_ARM_PATH, BUILD_TOOLS_PATH, OPENOCD_PATH). Перед первой сборкой необходимо указать в этом файле пути к скачанным инструментам и при необходимости заменить значение PROJECT_NAME на своё.
- .vscode/tasks.json - файл с задачами сборки проекта. Позволяет запускать сборку с помощью файла Makefile, а также очищать папку build/ с собранными файлами.
- .vscode/launch.json - файл с конфигурациями запуска отладки с помощью OpenOCD и arm-none-eabi-gdb, используя плагин Cortex-Debug. В шаблоне предусмотрены две конфигурации запуска отладки — через программатор J-Link и через программатор CMSIS-DAP.
- .vscode/c_cpp_properties.json - файл с настройками IntelliSense (пути к заголовочным файлам, дефайны, путь к компилятору).
2.2 Настройка путей к инструментам
Перед первой сборкой нужно открыть файл .vscode/settings.json и указать в нём пути к ранее скачанным инструментам:
"GCC_ARM_PATH": ".../gcc-arm-none-eabi-xxx/bin",
"BUILD_TOOLS_PATH": ".../xpack-windows-build-tools-xxx/bin",
"OPENOCD_PATH": ".../OpenOCD_xxx/openocd_mdr/bin"
Рисунок 3 - Настройка путей к инструментамВ путях следует использовать прямые слеши "/". После сохранения settings.json нужно закрыть все открытые в VS Code терминалы (или перезапустить VS Code) — иначе изменения PATH не применятся.
2.3 Сборка проекта
Перед запуском отладки проект необходимо собрать вручную.
Для сборки проекта нужно нажать в меню Terminal опцию Run Build Task... и в появившемся меню выбрать задачу Build:
Рисунок 4 - Сборка проектаВ файле tasks.json описано, какая команда вызывается при запуске каждой из задач. Задача Build вызывает make, задача Clean — make clean, задача Rebuild последовательно выполняет очистку и сборку.
Сборка проекта осуществляется в папке build, в ней располагаются все собранные файлы. По результатам сборки создаются файлы программы .elf, .hex и .bin, а также вспомогательные .map и .lst. Их название соответствует названию проекта, заданному в settings.json с помощью PROJECT_NAME.
Также по результатам успешной сборки в терминале выводится информация о размере собранного elf-файла.
Рисунок 5 - Результаты сборкиПри повторном запуске задачи сборки будут пересобраны только изменённые файлы. Если нужна полная пересборка, можно воспользоваться пунктом сборки Rebuild, либо сначала запустить Clean, а затем Build.
3. Запуск отладки
Отладка осуществляется с помощью arm-none-eabi-gdb (который находится в составе GNU Arm Embedded Toolchain) и OpenOCD. Для работы с ними в среде Visual Studio Code используется плагин Cortex-Debug.
В шаблоне проекта уже реализованы необходимые настройки для запуска отладки в файле launch.json. Шаблон содержит две конфигурации отладки:
- Debug K1986BE8T (CMSIS-DAP / OpenOCD) - отладка через программатор с интерфейсом CMSIS-DAP.
- Debug K1986BE8T (J-Link / OpenOCD) - отладка через программатор J-Link.
В ОС Windows для работы OpenOCD с отладчиками требуется переустановить драйвер отладчика на WinUSB-совместимый с помощью утилиты Zadig, как это описано в статье [i] Создаем проект для МК MDR1206FI, MDR1206AFI в IDE Eclipse.
В ОС Linux для работы OpenOCD с отладчиками нужно разрешить отладчику-программатору работать как доверенному источнику, как это описано в статье [i] Компиляция OpenOCD из исходных данных.Поскольку в данном шаблоне проект собирается для запуска из ОЗУ, в конфигурациях отладки в полях overrideLaunchCommands и overrideRestartCommands помимо стандартных команд reset halt и load выполняется ручная инициализация регистра VTOR и регистров SP/PC значениями из таблицы векторов, расположенной в ОЗУ. Это необходимо, поскольку после сброса процессор Cortex-M4 по умолчанию читает таблицу векторов по адресу 0x00000000 (boot ROM), а не из ОЗУ.
Для запуска отладки нужно открыть представление Run and Debug (View → Open View → Run and Debug или нажать кнопку с "жуком" на боковой панели).
В этом представлении выбрать нужную отладочную конфигурацию в зависимости от используемого программатора и нажать зелёную стрелку.
Рисунок 6 - Представление Run and Debug
Рисунок 7 - Запуск отладки
После запуска программа остановится в начале функции main(). Процессом исполнения программы можно управлять с помощью панели сверху. Регистры периферийных блоков доступны во вкладке XPERIPHERALS. Регистры ядра отображаются в VARIABLES → Registers.
Рисунок 8 - Процесс отладки
| Сайт: | https://support.milandr.ru |
| E-mail: | support@milandr.ru |
| Телефон: | +7 495 221-13-55 |