| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия |
| ide:vscode_qbs [2024/05/18 13:26] – admin | ide:vscode_qbs [2024/05/27 12:40] (текущий) – admin |
|---|
| ====== VSCode Qbs ====== | ====== VSCode Qbs ====== |
| [[https://doc.qt.io/qbs/installing.html|Qbs]] - это инструмент автоматизации сборки, предназначенный для удобного управления процессом сборки программных проектов на нескольких платформах.Qbs основан на языке QML. QML — это краткий, простой в освоении и интуитивно понятный язык. Его ядро является декларативным, но для большей гибкости его можно расширить с помощью фрагментов JavaScript. | [[https://doc.qt.io/qbs/installing.html|Qbs]] - это инструмент автоматизации сборки, предназначенный для удобного управления процессом сборки программных проектов на нескольких платформах. Qbs основан на языке QML. QML — это краткий, простой в освоении и интуитивно понятный язык. Его ядро является декларативным, но для большей гибкости его можно расширить с помощью фрагментов JavaScript. |
| |
| Qbs создает приложения на основе информации из файла проекта. Каждый файл проекта определяет один проект, который может содержать несколько продуктов. Вы указываете тип продукта, например приложение, и зависимости продукта от других продуктов. | Qbs создает приложения на основе информации из файла проекта. Каждый файл проекта определяет один проект, который может содержать несколько продуктов. Вы указываете тип продукта, например приложение, и зависимости продукта от других продуктов. |
| </code> | </code> |
| |
| Visual Studio Code предоставляет плагин qbs-community, который предоставляет точную информацию о ходе сборки и отображает дерево проекта, отражающее логическую структуру проекта. Кроме того, он может предоставлять информацию низкого уровня, например структуру файловой системы. | [[https://code.visualstudio.com/|Visual Studio Code]] предоставляет плагин [[https://marketplace.visualstudio.com/items?itemName=qbs-community.qbs-tools|qbs-community]], который предоставляет точную информацию о ходе сборки и отображает дерево проекта, отражающее логическую структуру проекта. Кроме того, он может предоставлять информацию низкого уровня, например структуру файловой системы. |
| | |
| | Для программирования микроконтроллеров STM32 в VSCode потребуется: |
| | * [[https://code.visualstudio.com/|Visual Studio Code]] |
| | * [[https://doc.qt.io/qbs/installing.html|Qbs]] - система сборки |
| | * [[https://marketplace.visualstudio.com/items?itemName=qbs-community.qbs-tools|qbs-community]] расширение для VSCode для поддержки Qbs |
| | * [[https://www.st.com/en/development-tools/stm32cubeclt.html|STM32CubeCLT]] - инструменты для сборки (компилятор, утилита для прошивки, отладчик, GDB - сервер) |
| | * [[https://www.st.com/en/development-tools/stm32cubemx.html|STM32CubeMX]] - генератор проектов для STM32 |
| | * [[https://github.com/Kits-Lab-Dev/qbs-template|Шаблон проекта Qbs]] |
| | |
| | [[https://disk.yandex.ru/d/Fjw2cZVs_fMvog|Скачать Qbs, STM32CubeCLT, STM32CubeMX]] |
| | |
| | В настройках VSCode в расширение Qbs настроить путь к исполняемому файлу ''qbs.exe'': |
| | {{ :ide:vscode_qbs_path.png?direct&400 |}} |
| | |
| | Создаем проект в ''Cube MX'': |
| | {{ :ide:cube_mx.png?direct&400 |}} |
| | |
| | ''File -> New Project'', выбираем микроконтроллер: |
| | {{ :ide:cube_mx_select.png?direct&400 |}} |
| | |
| | Активируем нужную периферию: |
| | {{ :ide:cube_mx_pinout.png?direct&400 |}} |
| | |
| | Настраиваем цепь тактирования: |
| | {{ :ide:cube_mx_rcc.png?direct&400 |}} |
| | |
| | Выбираем ''Makefile''в ''Toolchain/IDE'': |
| | {{ :ide:cube_mx_toolchain.png?direct&400 |}} |
| | |
| | Настраиваем генератор кода: |
| | {{ :ide:cube_mx_param.png?direct&400 |}} |
| | |
| | Генерируем проект нажав кнопку ''GENERATE CODE''. Открываем папку со сгенерированным проектом, копируем в нее содержимое ''шаблона проекта'' |
| | {{ :ide:cube_mx_template.png?direct&400 |}} |
| | |
| | Открываем папку проекта в ''VSCode'' и выбираем компилятор: |
| | {{ :ide:vscode_copil.png?direct&400 |}} |
| | |
| | Во вкладке отладки выбрать тип загрузки прошивки: |
| | {{ :ide:vscode.png?direct&400 |}} |
| | |
| | При первом открытии, возможно, понадобится сборка проекта, что бы не возникала ошибка при прошивке микроконтроллера. Для сборки нужно нажать кнопку ''Сборка'' в нижней панели ''VSCode''. При последующих запусках прошивки, сборка будет производиться автоматически. |
| | |
| | Для подключения сторонних библиотек нужно добавить в файле проекта ''хxx.qbs'' пути к библиотекам, например: |
| | <code javascript> |
| | property stringList myIncludes:[ |
| | "lib/SSD1306", |
| | "lib/microrl" |
| | ] |
| | </code> |
| | |
| | Для добавления своих определений их нужно поместить в список: |
| | <code javascript> |
| | property stringList myDefines:[ |
| | "_USE_CTLR_C" |
| | ] |
| | </code> |
| | |
| | Список ''files'' содержит список файлов включенных в проект: |
| | <code javascript> |
| | files:[ |
| | "*.ioc", |
| | "*_FLASH.ld", |
| | "**/*.c", |
| | "**/*.cpp", |
| | "**/*.h", |
| | "**/*.hpp", |
| | "**/*startup_**.s", |
| | ] |
| | </code> |
| | |
| | Строки ''**/*.cpp'' рекурсивно сканируют все папки проекта, в таком случае новые файлы добавляются в проект автоматически, достаточно перезапустить чтение ''*.qbs'' файла |
| | |
| | |
| | Для исключения файлов из проекта их нужно внести в список ''excludeFiles'', например: |
| | <code javascript> |
| | excludeFiles: [ |
| | "MAKEFILE" |
| | ] |
| | </code> |
| |