Главная » Хабрахабр » Настройка vscode под stm32 на примере отладочной платы stm32f429i-disco

Настройка vscode под stm32 на примере отладочной платы stm32f429i-disco

Всем привет!

Сегодня рассмотрим настройку удобной и красивой среды разработки для программиста микроконтроллеров с помощью набора полностью бесплатных инструментов разработки.

04 xenial desktop. **Все шаги проверены на виртуальной машине со свежеустановленной Ubuntu 16.

Подразумевается, что у Вас уже есть исходники какого-либо проекта.

То же самое касается и путей. Все настройки, касающиеся конкретного железа (в моём случае это контроллер STM32F429 и девборда STM32F429DISCO), нужно подменить на свои. **

Если готовы, то поехали

Установка curl

sudo apt-get install curl

Установка vscode

curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install code # or code-insiders

Установка arm-none-eabi тулчейна

sudo apt-get install gcc-arm-none-eabi
sudo apt-get install gdb-arm-none-eabi

Установка openocd

sudo apt-get install openocd

Запуск и настройка vscode

Для запуска vscode вызвать в терминале команду code.
Заходим в раздел Extensions (Ctrl+Shift+X).
Ищем и устанавливаем следующие плагины:

  1. Cortex-Debug от автора marus25.
  2. С/С++ от Microsoft.

Открываем папку с проектом через меню File/Open Folder.
Заходим в раздел Debug (Ctrl+Shift+D).

Вверху в выпадающей строке видим текст No configurations.

Нажимаем на шестерёнку рядом с ней, выпадает меню с предложением создать конфигурацию для дебага, выбираем Cortex-Debug.

В каталоге проекта создаётся скрытая папка .vscode, в которой создаётся файл с конфигурациями дебага launch.json.

Если этот файл не открылся сам, открываем его руками: переходим в раздел Explorer (Ctrl+Shift+E) и в дереве выбираем этот файл.

Настраиваем конфигурацию для openocd:

"configurations": [ ", "servertype": "openocd", "executable": "build/lol.elf", "svdFile": "STM32F429.svd", "configFiles": [ "/usr/share/openocd/scripts/board/stm32f429discovery.cfg" ] }
]

Последние три свойства: расположение elf-файла, расположение svd-файла, путь к конфигу для openocd, — настраиваем под себя.

Сохраняем файл launch.json и снова идём в раздел Debug, там убеждаемся, что в выпадающем меню появилась наша конфигурация.

Далее возвращаемся в раздел Explorer и в каталог .vscode добавляем новый файл с именем settings.json, открываем его, пишем там следующее:

{ "cortex-debug.armToolchainPath": "/usr/bin", "cortex-debug.openocdPath": "/usr/bin/openocd"
}

Далее добавляем в .vscode ещё один файл c_cpp_properties.json, открываем его и пишем там следующее:

{ "configurations": [ { "name": "vscode_stm32_c_cpp_properties", "compilerPath": "/usr/bin/arm-none-eabi-gcc", "includePath": [ "${workspaceRoot}/Inc/", "${workspaceRoot}/Drivers/CMSIS/Include/", "${workspaceRoot}/Drivers/CMSIS/Device/ST/STM32F4xx/Include/" ], "defines": [ "STM32F429xx" ], "cStandard": "c11", "cppStandard": "c++17", "intelliSenseMode": "gcc-x64" } ], "version": 4
}

По нажатию F5 можно запускать отладку (не забудьте перед этим собрать проект, чтобы elf-файл был на нужном месте).


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

Ускоряем неускоряемое или знакомимся с SIMD

Есть класс задач, которые нельзя ускорить за счёт оптимизации алгоритмов, а ускорить надо. В этой практически тупиковой ситуации к нам на помощь приходят разработчики процессоров, которые сделали команды, позволяющие выполнять операции на большим количеством данных за одну операцию. В случае ...

Kонсенсус в Exonum: как он работает

ExonumTM — это наш открытый фреймворк для создания приватных блокчейнов. Сегодня мы расскажем, как работает его алгоритм консенсуса. Изображение: Bitfury Зачем нужны алгоритмы консенсуса Прежде чем перейти к рассказу о том, как устроен алгоритм консенсуса ExonumTM, поговорим о том, зачем ...