65986

[i] Создание проекта для МК К1986ВЕ8Т в Visual Studio Code

Автор статьи: Лампадов Илья Александрович (Инженер)
Дата последнего изменения: 25.06.2026 13:32:25

Статья содержит информацию по настройке среды Visual Studio Code для микросхемы К1986ВЕ8Т. В основе файлов сборки файлы из примера для Eclipse.

1. Установка необходимых компонентов

Для работы, помимо самой среды Visual Studio Code, нужны:

  1. GNU Arm Embedded Toolchain - набор программ (компилятор, ассемблер, компоновщик, библиотеки, отладчик GDB), которые необходимы для разработки ПО на устройствах с ядром Arm Cortex-M.
    GNU Arm Embedded Toolchain доступен для скачивания по ссылке
  2. Windows Build Tools (при использовании ОС Windows) - набор программ (make, rm), которые необходимы для сборки и очистки проекта.
    Windows Build Tools доступен для скачивания по ссылке. Для скачивания Windows Build Tools в виде архива необходимо на странице для скачивания перейти в раздел "Manual install", затем после перехода на GitHub открыть страницу "Releases".
  3. OpenOCD - ПО для программирования и отладки устройств. OpenOCD для Windows, доступен для скачивания в конце статьи, раздел "Программное обеспечение", или на официальном сайте компании Миландр. При использовании ОС Linux версию OpenOCD с поддержкой микросхем компании Миландр можно собрать самостоятельно (см. "[i] Компиляция OpenOCD из исходных данных").
    1. После скачивания данного ПО можно добавить пути к папкам bin с исполняемыми файлами в системный PATH (Windows / Linux). В предлагаемом шаблоне проекта пути к инструментам указываются локально в файле settings.json - это позволяет хранить несколько версий тулчейна в системе и не править PATH.

    В самой среде Visual Studio Code потребуются следующие расширения:

    1. Стандартные С/С++ и C/C++ Extension Pack от Microsoft.
    2. Расширение Cortex-Debug, а также связанные с ним плагины, для отладки.

    Рисунок 1 - Расширения для VSCode

    2. Сборка проекта

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

    Рисунок 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 - Процесс отладки

Сохранить статью в PDF

Файлы для скачивания

Программное обеспечение

Software pack для Keil MDK 5 + Standard Peripherals Library
Software pack для Keil MDK 5 + Standard Peripherals Library

Теги

Была ли статья полезной?