[Из песочницы] Настройка IDE Clion и Cmake для работы с STM32 и C++
Комментарии 14
-
0
На сайте нашел только триальную на 30 дней.
Плохо искал или нет в природе?-
0
Практически все IDE от JetBrains платные. Но они того стоят :)-
+1
Оно того стоит, если постоянно зарабатываешь этим. А если программинг — хобби, то не стоит.-
23.08.17 в 22:46
0
CLion хорош. Я когда делал свой мини-проект для STM32 почти было его купил.Но потом я попробовал Rust и переписал всё на него. Рекомендую попробовать.
Есть плагин для IntellJ, но он довольно сыроват. В частности, вывод типов работает не идеально, из-за чего местами затруднительно использовать сгенерированную под контроллер библиотеку (генерируется много весьма специфичных типов, под конкретную периферию).
-
-
0
Может они и стоят того для java-guru.
А мне и Keil и SES и IAR и Ride7 и Visual Studio/Code.
Ну, а когда совсем делать нечего можно и Eclipsом/CCS/SimplicityStudio/Kinets время убить (и производными от него).
Для супер профи еще ArduinoIde есть.
Рюшки в той же VS необыкновенные, но gcc и рядом не лежал с armcc.
Про отладчик я и говорить не буду. Ozon конечно не плох, но еще поработать надо.Но каждый вибирает сам — спорить бессмысленно.
-
-
-
23.08.17 в 19:11
0
Попробовал хваленый Keil — конечно получше блокнота
А вот щас, обидно было ©
Я уже попробовал CLion для STM32 и у меня ровно обратные притензии:
— У меня вот (как и у 80% людей) ST-Link, че мне делать то с вашим Segger Debuger. Ответ — не дебажить.
— В отличии от Clion, Keil обладает хорошими сис. мониторами, которые позволяют контролировать процесс инициализации/пуска, эвенты/обработчики — что может Clion?
— В Keil есть отличный эмулятор, который позволяет не парится с дев бордой, или юзать функции МК которых нет на твоей борде (какой нить USB или FSMC и т.п.)
— Я использую продукты JetBrains, в частности PyCharm и меня задолбало, что за 4 часа работы IDE выжирает 2Гб ОЗУ (400 начальный это минимум), при всей своей «ненависти» к Keil его потребление неделями остается 40–50Мб, что позволяет мне его использовать ГДЕ угодно и КОГДА угодно.
— Keil имеет собственный репозиторий либ, которые добавляются простой галочкой в настройках.
Не срача ради, но все таки: Вам шашечки (подсветка, цветастость то да се) или таки ехать? (писать/дебагать под МК)
ЗЫ. Взял цв. тему с PyCharm, перегнал в Keil, получил 2 в 1, и Вам того советую. Кстати так и не понял что Вы называете «пакетами»?-
23.08.17 в 20:25
0
Мне кажется, что если ограничится работой с железом — то, может, Keil и хорош. Мне лично в том проекте, над которым тружусь что-то все эти возможности не очень пригодились. Да и польза от него, только если крепко сидеть под виндой.
А вот если с кучей «бизнес-кода», оставшегося от свинтивших с проекта «железячников» разбираться, то тут уже CLion, Eclipse и т.д. Инструменты для работы с кодом в Keil’е вызывают недоумение.
А по-поводу потребления памяти — то это как Запорожец сравнивать с многоцелевыми истребителем. И по этому показателю, и по работе с кодом, кстати, Keil далеко позади и Atom’а, и VSCode, и Sublime’а, и Emax с Vim’ом…-
0
Мне кажется, что если ограничится работой с железом
А с чем Вы простите работаете, не с железом?
Мне кажется, не надо «редакторы» (atom/sublime), сравнивать с полноценной средой разработки для встраиваемых систем c присущим ей функционалом, ибо то что вы перечисляете есть ничто иное как фишки редактора, не более.
А я сравнил две IDE, и утверждал, что профита от Clion, кроме редактора — никакого.Кажется мы стали забыть что такое IDE…
-
0
Я думаю, что Ryppka имел в виду работу с кодом в плане intellisense, навигацию, семантический анализ, рефакторинг и тому подобное. Иметь всё это — большое подспорье в разработке.
-
0
intellisense
Поэтому я и спросил. Вы пишите просто С/С++ оперируя чистым кодом, или вам часто приходится таки работать с железкой?
С железкой, не в плане, «накодогенераторить», а потом сидеть принтами дебагать, че из этого вышло.
В целом для чистого С, мне достаточно что Keil подстветит мне структуры, остальное вырабатывается по ходу работы, но все равно, я считаю что иметь для программирования встраиваемых систем монитор периферии, это огроменный плюс, который перекрывает «квадратность» редактора кода.
Эксперименты с IDE для embedd, я перестал делать после попытки завязаться с CooCooX, понял что проще попытатсья раскрыть потенциал знакомого инструмента, чем сидеть страдать в поисках.
Более того, мне компилятор кейл, как то более по душе, учитывая что он является официальным АРМ компиллером, а 30 кб триального кода, на данный момент хватает за глаза.
В целом, я не хотел преподнести свои слова как агрессию, просто автор статьи, как новичек, непонятно за что боролся, настраивая Clion для редактирования кода, в ущерб скажем так «прозрачности» программирования и понимания. Я сам на первых парах лихорадочно трейсил даже функции в библиотеках (stl), сравнивая значения в регистрах с тем что нужно было мне, искал различные нюансы в написании кода, активно использовал эмулятор (например для исследования работы аналогового компаратора, и разных режимов ADC).-
0
Приходится. Хм, может быть, я не совсем понимаю, что вы имеете в виду под мониторами периферии? Потому что Ozone вполне себе показывает состояние периферии, и не приходится разменивать «квадратность» на качество работы с железом. У автора есть удобные неинвазивные логи (через RTT), есть осциллограф (J-Scope), есть инструмент для профилирования в динамике (SystemView), так что я не думаю, что он что-то потерял в плане удобства работы с железом. Может быть, я просто что-то не знаю о кейле (признаюсь, давно было, да и Linux везде) и там есть что-то гораздо удобнее.
Я бы не хотел спорить о том, что лучше, тем более всё сильно завязано на персональное удобство и особенности проектов. Кому-то достаточно триальных ограничений — для меня 30 Кб практически делает компилятор бесполезным, у меня довольно увесистые проекты. Я активно использую C++14 (не спешите кривиться, C++ вполне годен для embedded — если знать подводные камни, много платить не приходится) и не знаю, что у armcc с поддержкой, а кто-то работает с чистым C и для него это не фактор. Кому-то нужна только подсветка кода, а мне некомфортно без маленьких радостей жизни — посмотреть сигнатуру функции под курсором и комментарий к ней, вывести список методов после. или → (и да, с fuzzy search) и тому подобного. Кому-то хочется подключать библиотеки кликом мыши, а я, признаюсь, немного control freak, мне нужно, чтобы проект был самодостаточной вещью в себе, без управления с помощью GUI-магии (поэтому связка CMake / CLion мне импонирует — обычная система сборки одновременно служит форматом проекта IDE). Так много фломастеров, и так много вкусов. :)
-
-
-
-
-
0
Не вступая в полемику и не делая рекламы (хотя я использую CLion и, для встраиваемого, инструменты от Segger), вроде бы у сеггера есть утилита, которая из ST-Link делает J-Link OB. Но я не пробовал, она просто там в загрузках висит.
-
23.08.17 в 22:17
0
Использовал CoIDE. Для труЪ профессионала, конечно, не то, но довольно приятно. Подключение либ из коробки. Нормальный дебаг Ну и все редакторские плюшки Eclipse. Пока эта IDE мне больше всего нравится.
Сейчас использую Keil, так сложилось. Удобнее IAR блокнота, но замечания есть. Иногда не работает автодополнение и навигация по коду. А так же при отладке часто не показывает значения переменных. И в проекте нельзя делать вложенные… гм… назовем их «папки».
P.S.
У меня вот (как и у 80% людей) ST-Link, че мне делать то с вашим Segger Debuger. Ответ — не дебажить.
Я настоятельно призываю не пользоваться нелицензионным ПО и железом, но в ознакомительных целях перепрошивка ST-Link в Segger J-Link
Делал так для RTL-8710, потому что на копеечный радимодуль деньги есть, а на Segger — нет
-
-
0
*.specs не генерирует, а скорее линкует с соответствующей реализацией libc / libgolss вашего тулчейна.
Например lib/thumb/v7-ar/fpv3/hard/nano.specs:... *nano_libc: -lc_nano *nano_libgloss: %{specs=rdimon.specs:-lrdimon_nano} %{specs=nosys.specs:-lnosys} ... *link: %(nano_link) %:replace-outfile(-lc -lc_nano) ... ...
с, в зависимости от реализации, застабленными вызовами типа такого: https://github.com/32bitmicro/newlib-nano-1.0/blob/c010b5911834ed9a412bd0a865abdf3eed00a4ee/libgloss/arm/syscalls.c#L585
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.