Как удалить clion / phpstorm / pycharm и другое?
Собственно я не хочу удалять clion, но думаю по тому же принципу удаляются и другие продукты jetbrains.
когда я ставил, там было что-то вроде галочки горячие клавиши vim или как-то так (что-то связано с vim).
Поставилось нормально, все работает. Но я не люблю пользоваться vim, а здесь еще эти горячие клавиши. бррр.
Мне нравится добрый phpstorm и я бы хотел убрать vim с clion.
- разархивировал в папку /opt/clion
- chmod +x
- ./clion.sh -> создал ярлыка раб. столе.
Попытка удалить папку /opt/clion обвенчалась провалом: удалил файлы, скопировал заново и как-будто ничего не удалилось — все по прежнему — настройки сохранились, даже проект открывает при загрузке.
Команда whereis clion показала только содержимое папки /opt/clion
Форум русскоязычного сообщества Ubuntu
Страница сгенерирована за 0.047 секунд. Запросов: 23.
- Сайт
- Об Ubuntu
- Скачать Ubuntu
- Семейство Ubuntu
- Новости
- Форум
- Помощь
- Правила
- Документация
- Пользовательская документация
- Официальная документация
- Семейство Ubuntu
- Материалы для загрузки
- Совместимость с оборудованием
- RSS лента
- Сообщество
- Наши проекты
- Местные сообщества
- Перевод Ubuntu
- Тестирование
- RSS лента
© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.
Настраиваем Clion для разработки под Flipper Zero
Flipper Zero — швейцарский нож для гиков и пентестеров с открытым исходным кодом.
Как только я получил это устройство — я сразу стал изучать как разрабатывать fap расширения, которые помогли бы мне в повседневной жизни и в работе.
В этой статье я расскажу как настроить Clion для сборки прошивки, приложений, и отладки через Wi-Fi Debugger Module или ST-LINK.
Как оказалось, ребята из Flipper Inc разработали свой инструмент для стандартизации сборки и отладки на разных платформах, чтобы любой энтузиаст смог быстро установить необходимые инструменты и в пару кликов выполнять нужные для разработки операции.
Для VSCode даже существует готовое окружение с различными макросами в виде shell скриптов.
Сразу оговорюсь, что многое я подчеркнул из личного блога Савелия Красовского: https://krasovs.ky/2022/11/01/flipper-zero-clion.html, но дополнил инструкцию так, чтобы можно было отлаживать и fap приложения.
Приступаем к настройке
Для начала нужно клонировать git репозиторий с прошивкой флиппера, например, в папку с проектами Clion:
git clone --recursive https://github.com/flipperdevices/flipperzero-firmware.git
В репозитории находятся необходимые скрипты для установки инструментов сборки и отладки.
Далее установим необходимые утилиты, исполнив команду в папке проекта:
Python скрипты должны скачать необходимые утилиты (GDB, GCC и так далее) и собрать прошивку.
Настройка основного функционала
Автодополнение кода и подсветка синтаксиса
После установки fbt можно открыть проект в Clion и приступить к базовой настройке.
Сперва сформируем CDB (Compilation Database) и импортируем в Clion.
Это нужно для автодополнения кода.
Исполним 3 команды:
./fbt ./fbt faps ./fbt firmware_cdb
После чего переходим в папку build -> lastes и копируем файл compile_commands.json в корень проекта. Затем нужно нажать по файлу правой кнопкой мыши и выбрать Load Compilation Database Project . Готово! Можно удалить файл из корня проекта.
Я пока не нашёл как автоматически подтягивать обновлённую базу из этого файла, если кто знает — добро пожаловать в комментарии 🙂
UPD: Ниже будет описание макроса, который после сборки прошивки копирует compile_commands.json в корень проекта.
Осталось добавить Toolchain, для этого переходим в File -> Settings -> Build, Execution, Deployment -> Toolchains и создаём следующую конфигурацию:
- C Compiler: toolchain//bin/arm-none-eabi-gcc
- С++ Compiler: toolchain//bin/arm-none-eabi-g++
- Debugger: toolchain//bin/arm-none-eabi-gdb-py
На Mac с M1 у меня не проходит проверка Cmake, но это не важно, так как собирать прошивку и приложения мы будем через fbt.

Добавляем удобные макросы как в VSCode
Как я и говорил ранее, для VSCode существует готовое, легко импортируемое окружение с множеством заданий, запускаемых в один клик из IDE. Мы попробуем сделать что-то подобное
Все задачи мы будем добавлять следующим образом:

- Кликнем вверху проекта Edit Configurations
- Нажмём + и выберем Shell Script
- Выберем Script Text и добавим Working Directory (Папка с проектом)
Для работы нам потребуются следующие задачи:
Команду можно дополнить таким образом, чтобы compile_commands.json копировался в корень проекта (если нужно):
./fbt && cp build/latest/compile_commands.json /flipperzero-firmware

./fbt FORCE=1 flash_blackmagic

./fbt fap_dist

./fbt launch_app APPSRC=

Вы можете расширить или изменить этот список, обратившись к документации. Для старта хватит пока и этого.
Настройка удалённого отладчика для отладки через Wi-Fi Debugger Module
Отладка будет осуществляться через удалённый GDB сервер.
Опять переходим в Edit Configurations вверху проекта и создаём конфигурацию Remote Debug :

- Debugger — выбираем тот, который добавляли в Toolchain ранее.
- ‘target remote’ args заполняем выводом команды ./fbt get_blackmagic (Wi-Fi дебагер должен быть подключён). Желательно настроить на Wi-Fi роутере статический ip для этого устройства, чтобы не менять конфигурацию.
- Symbol file: build/latest/firmware.elf — Путь к собранному elf файлу прошивки флиппера.
- Sysroot: build/latest Путь к папке с собранной прошивкой
Перед запуском отладчика нужно выполнить некоторые команды на GDB сервере.
Для этого мы создадим Before launch блок External tool , нажав на +:

Блок будет выглядеть так:

- Program: Выбираем тотже отладчик, что и в Toolchain: toolchain//bin/arm-none-eabi-gdb-py
- Arguments:
-q -ex «target remote » -ex «monitor swdp_scan» -ex «attach 1» -ex «set confirm off» -ex «set mem inaccessible-by-default off» -ex «source debug/flipperapps.py» -ex «fap-set-debug-elf-root » -ex «quit» build/latest/firmware.elf - Working Detictory: Путь к папке с проектом
Теперь нужно создать файл .gdbinit в корневой папке проекта.
Файл заполнить следующим содержимым:
set confirm off set trace-commands on define target remote target extended-remote $arg0 set mem inaccessible-by-default off source debug/flipperapps.py fap-set-debug-elf-root end
Теперь проверим отладку:

- Чтобы отладка заработала, нужно загрузить собранную прошивку в флиппер. Перед загрузкой прошивки рекомендую сделать бекап в приложении qFlipper, чтобы сохранить все настройки. Для загрузки прошивки используем задачи, созданные ранее: ./fbt и ./fbt FORCE=1 flash_blackmagic
- Нужно поставить точку остановки в файле firmware/targets/f7/furi_hal/furi_hal_os.c, на 154 строке:
- Запускаем отладку
В результате должна появиться отладочная информация:

Готово! Мы настроили удалённый отладчик!
Настройка Embedded GDB Server для отладки через ST-LINK
Переходим в Edit Configurations вверху проекта и создаём конфигурацию Embedded GDB Server :

- Executable binary — Путь к собранному elf файлу прошивки флиппера build/latest/firmware.elf
- Debugger — выбираем тот, который добавляли в Toolchain ранее.
- ‘target remote’ args тут указан дефолтный порт openocd
- GDB Server: openocd, его нужно будет установить, если еще не установлен
- GDB Server args:
-c «gdb_port 3333» -f interface/stlink.cfg -c «transport select hla_swd» -f ./debug/stm32wbx.cfg -c «stm32wbx.cpu configure -rtos auto» -c «echo (((READY))) - Working directory — указываем корневую папку проекта
- Target:
Тут можно создать Custom Build Target, который просто будет выполнять команду ./fbd
Жмём шестеренку:

Потом на плюсик в Custom Build Targets:

Toolchain выбираем созданную ранее.
Build создаём новую, с такими параметрами:

Перед запуском отладчика нужно выполнить некоторые команды на GDB сервере.
Для этого мы создадим Before launch блок External tool , нажав на +:

- Program: Выбираем тотже отладчик, что и в Toolchain: toolchain//bin/arm-none-eabi-gdb-py
- Arguments:
-ex «source /debug/flipperapps.py» -ex «fap-set-debug-elf-root » -ex «quit» build/latest/firmware.elf - Working Detictory: Путь к папке с проектом
Готово! Сохраняем и проверяем
Как отлаживать приложения
Приложения в Flipper Zero хранятся на SD карте и попадают в оперативную память только когда мы их запускаем. Поэтому, чтобы отладчик обнаружил нужный сектор, следует поставить точку остановки после загрузки приложения в память, чтобы отладчик успел вычитать ту область, в которую загрузилось приложение.
Для этого сначала поставим точку остановки в функции загрузчика fap расширений:
applications/main/fap_loader/fap_loader_app.c , на 107 строке.

После этого можно поставить точки остановки в файлах вашего приложения, и начать отладку:
- Запустить отладку.
- На флиппере запустить ваше приложение.
- После того как вы запустили приложение — мы должны будем остановиться на точке, которую мы ранее поставили в fap_loader_app.c
- Нажимаем Resume Programm, после чего запустятся точки остановки, поставленные в коде приложения:


Готово! Можно приступать разработке со всеми удобствами!