Comments 12
>После настройки среды необходимо добавить в файл конфигурации VS Code путь подключения библиотек чтобы их видел InteliSense в файлах приложений
Не надо так делать, IntelliSense работает с compile_commands.json, который генерится при сборке полной прошивки. Он оттуда возьмёт все необходимые пути до инклюдов (и не добавит лишние/приватные, как это делает приведённый пример).
Ещё есть ufbt - standalone сборщик приложений, с которым не нужно тащить и собирать всю прошивку целиком. Очень советую пользоваться именно им.
Спасибо за обратную связь! Поправлю конфигурацию VSCode.
При использовании ufbt приходится furi_delay_ms(5000) в мейн вставлять чтобы успевать запустить дебаггер или в консоли gdb выполнять команду break applications/main/fap_loader/fap_loader_app.c:107, потому что прошивка в бинарном виде, и нельзя просто так поставить бряку на applications/main/fap_loader/fap_loader_app.c:107 в интерфейсе vscode. И флиппер нужно присоединять к компу одновременно через usb (для аплоада приложения) и stlink для отладки.
В целом рабочая конструкция, но было бы здорово чтобы всё это было сильно проще.
Мы планируем некоторые улучшения со стороны отладки - ожидание аттача дебаггера и прочие мелочи.
Избавиться от usb пока не получится, rpc для заливки файлов через swd/дебаг-борду недоступен.
Апдейт: добавили брейкпойнт до запуска приложения. При активной сессии отладки будет триггериться брейкпойнт после загрузки кода в память, но до его запуска. В этот момент можно расставить все нужные точки в самом коде приложения.
Рад, что моя статья оказалась полезной!
для этого нам понадобится: внутрисхемный программатор ST-Link V2
Получается, без физической железки отладка Флиппера невозможна?
C dev board запуск выглядит также?
./fbt launch_app APPSRC=./applications_user/hello_world
./fbt
./fbt FORCE=1 flash_blackmagic
На этих этапах всё нормально. Но при запуске отладки vscode никак не реагирует. Для сравнения, если попробовать запустить режимы отладки с другими устройствами, которых у меня нет (например, "Attach FW (ST-Link)"), запускается gdb с ожидаемой ошибкой.
@hedger, подскажите, что я делаю не так? :)
Какая ОС?
Нужно посмотреть на логи вскода в окне отладки, содержимое вкладки консоли GDB. Если там не будет очевидных причин, то напишите в оф. группе в Телеграме, разберёмся.
Отладка заработала, когда заменил в строке конфига launch.json значение свойства "gdbTarget"
с "${input:BLACKMAGIC}"
на "tcp:192.168.64.107:2345"
. Хотя команда ./fbt get_blackmagic
отдает корректный адрес (как для wifi, так и для usb), он по какой-то причине не подхватывается дальше. Запускал под актуальной macOS Ventura 13.3 (22E252) на свежей версии VSCode 1.77.0. До замены ошибок в логах не было, при запуске отладки на миг возникала анимация (тонкая синяя полоска прогресс бара), исчезала, и больше ничего.
А все ли рекомендуемые при открытии проекта расширения установлены? За обработку этого инпута отвечает https://marketplace.visualstudio.com/items?itemName=augustocdias.tasks-shell-input
Пишем и отлаживаем приложения для Flipper Zero