Всем привет!
Сегодня рассмотрим настройку удобной и красивой среды разработки для программиста микроконтроллеров с помощью набора полностью бесплатных инструментов разработки.
Все шаги проверены на виртуальной машине со свежеустановленной Ubuntu 16.04 xenial desktop x64.
Подразумевается, что у Вас уже есть исходники какого-либо проекта.
Все настройки, касающиеся конкретного железа (в моём случае это контроллер 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).
Ищем и устанавливаем следующие плагины:
- Cortex-Debug от автора marus25.
- С/С++ от Microsoft.
Открываем папку с проектом через меню File/Open Folder.
Заходим в раздел Debug (Ctrl+Shift+D).
Вверху в выпадающей строке видим текст No configurations.
Нажимаем на шестерёнку рядом с ней, выпадает меню с предложением создать конфигурацию для дебага, выбираем Cortex-Debug.
В каталоге проекта создаётся скрытая папка .vscode, в которой создаётся файл с конфигурациями дебага launch.json.
Если этот файл не открылся сам, открываем его руками: переходим в раздел Explorer (Ctrl+Shift+E) и в дереве выбираем этот файл.
Настраиваем конфигурацию для openocd:
"configurations": [
{
"name": "openocd",
"request": "launch",
"type": "cortex-debug",
"cwd": "${workspaceRoot}",
"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-файл был на нужном месте).
Автор: Григорий