Эта страница только для чтения. Вы можете посмотреть её исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== VSCode Qbs ====== [[https://doc.qt.io/qbs/installing.html|Qbs]] - это инструмент автоматизации сборки, предназначенный для удобного управления процессом сборки программных проектов на нескольких платформах. Qbs основан на языке QML. QML — это краткий, простой в освоении и интуитивно понятный язык. Его ядро является декларативным, но для большей гибкости его можно расширить с помощью фрагментов JavaScript. Qbs создает приложения на основе информации из файла проекта. Каждый файл проекта определяет один проект, который может содержать несколько продуктов. Вы указываете тип продукта, например приложение, и зависимости продукта от других продуктов. Тип продукта определяет набор правил, которые Qbs применяет для создания артефактов из входных файлов. Входные файлы можно разделить на группы, например, по их типу или назначению. Группу также можно использовать для присвоения свойств продуктам. Ниже приведен пример минимального файла проекта, в котором указаны тип продукта, имя приложения, исходный файл и зависимость от модуля cpp: <code JavaScript> Application { name: "helloworld" files: "main.cpp" Depends { name: "cpp" } } </code> [[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> ide/vscode_qbs.txt Последнее изменение: 2024/05/27 12:40 — admin