
Всем привет!
Сегодня рассмотрим настройку удобной и красивой среды разработки для программиста микроконтроллеров с помощью набора полностью бесплатных инструментов разработки.
Все шаги проверены на виртуальной машине со свежеустановленной 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-файл был на нужном месте).

