VS Code/Stm32 сборка и отладка

Автор: | 09.09.2020

В последнее время очень пристрастился к редактору Visual Studio Code. Очень нравится система плагинов, подсветка кода, скорость и стабильность работы. Плагины можно найти буквально для всего и вся. В общем пока я очень доволен и впечатлён.
А теперь наконец решился вести всю разработку проектов для встроенных систем в данном редакторе. Для тех кто захочет повторить мой опыт, да и для самого себя решил составить краткую инструкцию по настройки среды VS code. Данная инструкция является по сути краткой выжимкой вот этого прекрасного видео.

Предполагается, что весь необходимый софт для создания проекта STM32 уже установлен (CubeMx, соответствующую вашему целевому процессору библиотека FW). В моем примере будет использоваться чип stm32l052, отладка будет производиться с помощью JLink.

Подготовка окружения

  • Скачиваем VS code с официального сайта
  • Устанавливаем плагины: Cortex-Debug, C/C++ for Visual Studio Code
  • С помощью CubeMx генерируем проект содержащий Makefile.
  • Скачиваем GNU Arm Embedded Toolchain, Eclipse Windows build tools

  • Добавляем в системные переменную среды в PATH путь до arm-none-eabi-gcc.exe (папка bin тулчейна, в моем случае директория называется gcc_arm), также путь до папки bin windows build tools (я назвал папку build_tools)
  • Также я создал системную переменную EGCC_PATH и прописал путь до корневой директории тулчейна
  • Т.к. я буду использовать для отладки JLink необходимо скачать и установить софт для работы с ним.

Рис. 1 Вид окон системных переменных

Настройка, сборка и отладка в VS Code

Пора перейти к непосредственно к настройке проекта VS. Создадим директорию с названием .vscode. В ней мы будем создавать или копировать в нее файлы требующиеся для настройки проекта vscode.

Для связи с контроллером будем использовать JLink. Создадим папку в корне проекта с одноименным названием и добавим скрипты для него. Скрипты нужно написать один раз и таскать от проекта к проекту. Я взял уже готовые из архива, приложенного под видео. Их также можно взять и из моего проекта или прочитав мануал, написать самому. Если вы взяли готовые, то редактировать нужно только один файл — FlashMCU.jlink. В нем необходимо задать имя исполняемого файла. Также в директорию jlink я положил svd файл, в нем находится описание регистров MCU. Файл взял репозитория.

Теперь пора прописать таски для VS Code, я взял опять же готовые из файла с задачами task.json. Задачи перечислены через фигурные скобки, можно добавлять свои по необходимости. В тасках связанных с прошивкой контроллера, требуется поменять его название на используемый в вашем проекте. Название должно быть такое же, какое использует JLink. Чтобы уточнить название MCU можно, например, запустить утилиту J-Flash и найти в списке Target нужный контроллер. На этом с тасками все.

В файле settings.json нужно прописать настройки плагина Cortex-Debug. Самое главное это прописать путь до GDB сервера JLink.

c_cpp_properties.json содержит настройки для сборки проекта, это путь к компилятору и его системным директориям, пути к исходникам, а также глобальные дефайны проекта.

launch.json —отладка настройки запуска проекта, указывается тип сервера отладки, тип интерфейса отладчика, путь к исполняемому файлу и т.д. Настройки довольно логично и понятно названы, разобраться с ними не составит труда. Все настройки завершены и теперь можно запустить проект на сборку и отладку. Это делается с помощью тасков, которые мы прописали раннее. Их список вызывается из меню Terminal -> Run Task… или сочетанием клавиш Ctrl+Alt+T (Ctrl+Alt+B). Если все сделано правильно, то можно успешно собрать проект, прошить контроллер и запустить отладку.

Ссылка на мой проект на Github

Ссылка на оригинальное видео

Результат сборки проекта

 

VS Code/Stm32 сборка и отладка: 1 комментарий

  1. LLLL

    Очень интересно! Ссылка на видео не работает?

Обсуждение закрыто.