Pull to refresh

Настройка VSCODE под разработку для ARM на примере отладочной платы stm32f429i-disco

Open source *C++ *Debugging *C *Programming microcontrollers *
Tutorial


Всем привет!


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


Все шаги проверены на виртуальной машине со свежеустановленной 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).
Ищем и устанавливаем следующие плагины:


  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": [
    {
        "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-файл был на нужном месте).


Tags:
Hubs:
Total votes 38: ↑37 and ↓1 +36
Views 30K
Comments Comments 52