LINUX.ORG.RU

А как сейчас модно писать под STM32?

 , , , ,


1

4

Хочу снова вкатиться в STM32, но наевшись в прошлые разы SPL и STM32Cube, хочу сразу начать писать хорошо и правильно.
Посему спрашиваю наиболее православные версии тулчейна для C (желательно clang), билд-системы (желательно cmake), программатора и отладчика и альтернативной библиотеки периферии (раньше использовал LibOpenCM3, но вдруг есть что-то лучше).
А если вдруг знаете какой-нибудь хороший тулчейн для Rust, стандартную библиотеку или RTOS, то тоже пишите. Эти три пункта мне не особо нужны, да и хорошие кандидаты на каждый из них у меня есть свои (llvm_baremetal, newlib и ChibiOS).
Или не стоит в 2018 пинать STM32? Пора переходить на SiFive?

★★★★★

Я пробовал прогать на расте и могу сказать, что он не дорос для более-менее серьёзных проектов. Без фич анстейбл версии даже не скомпилировать. Существующие ртоси на расте полное уг по сравнению с фриртос, а фреймворки уг по сравнению с HAL.

Использование раста совместно с си просто не даёт особых бонусов.

SL_RU ★★★ ()
Последнее исправление: SL_RU (всего исправлений: 1)
Ответ на: комментарий от SL_RU

Я пока не планировал писать на расте, но спасибо за информацию.

CYB3R ★★★★★ ()
Ответ на: комментарий от SL_RU

Потому что под немейнстримные задачи с немейнстримными платформами нужно использовать nightly обязательно.

Ваш кэп.

Nighlty — не значит что компилятор будет генерить мусор вместо кода, это просто возможность включения фич языка, которые еще не было решено стабилизировать и тем самым подписаться на их поддержку во всех последующих релизах.

Включение фич опционально: то есть фичи типа asm или интринсики можно использовать спокойно, они скорее всего в стейбле будут. Экзотику типа экспериментальных реализаций вчерашнего rfc всё таки не стоит.

mersinvald ★★★★★ ()
Последнее исправление: mersinvald (всего исправлений: 1)

писать хорошо и правильно.

Ну смотри

наиболее православные версии тулчейна для C

Наиболее православным будет c++. Инфа сотка.

желательно clang

Тут согласен

билд-системы (желательно cmake)

Qbs, а симаке на помойку.

программатора и отладчика

У китайцев копию st-link. Вот такой http://s2.electrodragon.com/wp-content/uploads/2013/09/ST-Link-V2-Programmer-... Проверено, работает

альтернативной библиотеки периферии

HAL от stm32. Нефиг всякий шлак по интернету собирать

Или не стоит в 2018 пинать STM32?

Стоит. Других нормальных мк нет. Авр и прочее 8 битное дерьмо идёт на помойку.

anonymous ()
Ответ на: комментарий от SL_RU

Кот-то запрещает использовать растишку вместе с кубом и халом?

anonymous ()

А тем временем беларусы клепают IoT девайсы на PIC-ах. Даже Ethernet-шлюз на PIC

makoven ★★★★★ ()
Ответ на: комментарий от anonymous

У китайцев копию st-link

Такой у меня есть уже. Я про софт для него. Использовал OpenOCD, st-flash, stm32flash, везде были какие-то косяки.

CYB3R ★★★★★ ()
Ответ на: комментарий от anonymous

Наиболее православным будет c++. Инфа сотка.

Никаких плюсов на МК. Они раздувают бедный код до неимоверных размеров, если использовать хоть сколько-нибудь полезные фичи, а без них ц++ сакс, да и вообще, они просто раскрепощают

SL_RU ★★★ ()
Ответ на: комментарий от SL_RU

CubeMx это случаем не vendor-lock?

Вопрос автору темы: LibOpenCM3 какие недостатки, как показалось?

Какие есть МК в продаже на SiFive, насколько они развиты по сравнению с stm32? Я вообще пишу из танка.

I-Love-Microsoft ★★★★★ ()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от makoven

Пики - дорого, малопроизводительно, и жрёт как целый танк. Да и с ДМА не так всё радужно, как на кортексах и с другими интерфейсами.

SL_RU ★★★ ()
Ответ на: комментарий от SL_RU

Плюсы нужны для нормальной агрегации и структурирования кода. Не обязательно использовать исключения, RTTI и прочую жирноту.

anonymous ()
Ответ на: комментарий от CYB3R

Использовал OpenOCD, st-flash, stm32flash, везде были какие-то косяки.

Юзаю st-util. Отладка и загрузка - прекрасно

SL_RU ★★★ ()
Ответ на: комментарий от I-Love-Microsoft

STM32CubeMx - явовская программа, которая просто генерирует код иницализации переферии под фреймворк HAL. Всё открытое.

Это такой же вендорлок, как и разница opengl и directx

SL_RU ★★★ ()
Ответ на: комментарий от I-Love-Microsoft

CubeMx это случаем не vendor-lock?

Он самый, потому и не хочу SPL или Cube.

LibOpenCM3 какие недостатки, как показалось?

Если «въехать», то никаких. Но «въехать» нужно и это занимает время, пока не «въедешь», будет путаница и в хэдерах и в голове. Так что недостатком можно назвать высокий порог вхождения, но я не думаю, что это что-то плохое.

Какие есть МК в продаже на SiFive, насколько они развиты по сравнению с stm32?

SiFive — это компания, архитектура называется RISC-V. Из чипов пока только E310, но не знаю, как у него с продажей.

CYB3R ★★★★★ ()

Кстати, раз уж раст затегал, я тут еще поевангелирую.

Те же либы japaric позволяют писать в safe rust со всеми гарантиями и инициализацию периферии и ее использование и реализовывать вытесняющую многозадачность c общей памятью задач без гонок.

бложик

mersinvald ★★★★★ ()
Последнее исправление: mersinvald (всего исправлений: 1)
Ответ на: комментарий от SL_RU

STM32CubeMx - явовская программа, которая просто генерирует код иницализации переферии под фреймворк HAL. Всё открытое.

Сама явовская программа закрытая.

anonymous ()

Я использую scmRTOS, eclipse и makefile. Ось плюсовая, очень быстрая.

Тестовые проекты с использованием этой RTOS: раз, два. По второй ссылке используется библиотека stm32tpl.

Beewek ()
Ответ на: комментарий от CYB3R

Cube не вендорлок, что еще ты в нем плохого видишь?

Deleted ()
Ответ на: комментарий от Deleted

CubeMX — это проприетарь и вендорлок, так как завязывает твои проекты на HAL. Я же не хочу использовать HAL.

CYB3R ★★★★★ ()
Ответ на: комментарий от CYB3R

Linux — это проприетарь и вендорлок, так как завязывает твои пректы на Linux. Я же не хочу использовать Linux.

anonymous ()
Ответ на: комментарий от CYB3R

Алсо, оно называется не «вендорлок», а «vendor lock-in», чучело.

anonymous ()
Ответ на: комментарий от I-Love-Microsoft

Какие есть МК в продаже на SiFive, насколько они развиты по сравнению с stm32?

Периферия - дно в сравнении с любыми другими МК на рынке, кроме совсем уж старых.

Dark_SavanT ★★★★★ ()
Ответ на: комментарий от mersinvald

Только пока ты в рамках того что он налепил, а там далеко не всё по периферии и то что есть местами спорно сделано, что не удивительно тащем при общей незрелости тулинга rust для embedded.

Ну и делать обёртки над периферией это та ещё боль. Хотя когда появляются более-менее внятные абстракции над железом становится попроще.

Dark_SavanT ★★★★★ ()
Ответ на: комментарий от CYB3R

выдавай оно тебе .o без которого никак - это lock-in, а так тебе никто не запретит срать в регистры самому. Но по опыту скажу, что HAL для «слепить по-быстрому» лучше.

Ну и так, из неизвестных загашников интернета - https://github.com/alexeyk13/rexos

Вдруг пригодится

Dark_SavanT ★★★★★ ()
Последнее исправление: Dark_SavanT (всего исправлений: 1)
Ответ на: комментарий от CYB3R

проприетарь и вендорлок.

Проприеатрь - ок, почему это не вендорлок тебе уже объяснил Dark_SavanT.

Поехали дальше, чем тебе HAL не угодил? Тебе тоже засрали мозг тру хацкеры с easyelectronics?

Deleted ()
Ответ на: комментарий от Deleted

Конь, ты этого говна исходники видел вообще? А как по-наркомански функции обзываются?

Тебе хочется, чтобы мигалка диодом 8кБ флеша занимала, а код чуть сложней не влезал и в 16?

Калокуб создан в жалкой попытке расширить диапазон пользователей вовлечением ацефалов, которые абдурину мучают. А, как ты знаешь, тем, что создается для дебилов, в итоге лишь дебилы и пользуются! Явный пример — мастдайка.

anonymous ()
Ответ на: удаленный комментарий

Красные глаза! Собираю, компиляю...

anonymous ()
Ответ на: комментарий от anonymous

При чем здесь «красные глаза»? Это — единственный удобный и рациональный путь. Минимум тычков мышей. Максимум понимания и оптимизации.

А вантузоиды пусть в калокубе натыкивают и вопят потом на форуме «ой, у меня прошивка в 32кБ не лезет, надо МК на 64кБ покупать!». А фактически, если бы их быдлокод причесать, влезло бы и в 16кБ со свистом!

anonymous ()
Ответ на: удаленный комментарий

Покажи пример своего Makefile'а.

BceM_IIpuBeT ★★★★ ()
Ответ на: комментарий от anonymous

Эдик, не передёргивай. Никаких 8кБ. Оверхед минимальный, зато польза огромна. Хал прекрасен.

anonymous ()
Ответ на: комментарий от anonymous

Эдуард, ты хоть помечай свои сообщения секретным значком, если не хочешь заводить новый аккаунт.

На лоре, насколько я понимаю, не так уж и много людей, которые по-настоящему что-то делают с STM32. Твое мнение по этому поводу очень ценно.

Тут в теме уже несколько анонимусов, становится непонятно кто пишет по делу, а кто тралирует

Deleted ()
Ответ на: комментарий от BceM_IIpuBeT

Потому что Makefile же!

Если в geany и для makefile'ов сделать выравнивание пробелами, то придется придумывать, как в начало втыкать табы...

В нормальном коде я уже давно использую выравнивание пробелами, на всех компах geany настроил соответствующим образом.

anonymous ()
Ответ на: комментарий от Deleted

Анонимус прав: у меня есть ЖЖ. Есть гитхаб, почта... В общем, способов связи уйма.

ЛОР — не место для серьезных тем. Это обычная срачельня.

anonymous ()
Ответ на: комментарий от BceM_IIpuBeT

Так и я о том же: не вручную же пробелы ставить! А перед целями компиляции в Makefile обязательно должны быть табы.

anonymous ()
Ответ на: комментарий от anonymous

Эдик, по твоим постам понятно, что ты не имеешь никакого отношения ни к профессиональной разработке ПО на микроконтроллеры, ни к вообще какой-либо деятельности направленной на извлечение прибыли.

В этом мире, Эдик, платят не за задроченный до зубой даташит от STM сто пятого, а за умение быстро и качественно воспринимать новую информацию и приобретать новые умения (тебе это недоступно, т.к. до сих пор сидишь на KOI8-R), а так же способность оценивать стоимость человекочасов, необходимых для завершения проекта (тебе это недоступно, т.к. сомневаюсь что ты хоть раз заработал деньги, доставшиеся не в виде гранта, нищенской зарплаты научного сотрудника или грошей в виде подачек от студентов, которым ты делаешь дипломы).

anonymous ()
Ответ на: комментарий от anonymous

ТС спрашивает о том, как правильно делать, а не как подставить свой зад работодателю и стать шлюхой последней!

Мне нравится работать так, как я работаю. А тебе если нравится быть последней шлюхой и сосать у каждого встречного-поперечного — это твое дело. Я таким заниматься не собираюсь.

anonymous ()
Ответ на: комментарий от anonymous

ТС спрашивает о том, как надо делать, чтобы получить работающую вещь, а не потратить месяцы на моргание светодиодом.

И дело тут не в работодателе, а в распределении своего времени. Если CYB3R хочется разбираться в регистрах, ему никто не запрещает. Но если он хочет разрабатывать на STM32 устройства, то HAL тут нет альтернативы. Нет никакого смысла разбираться в даташите, если это уже сделали за тебя и предоставили удобный API. Да, там есть баги и ошибки, но значительно меньше, чем в locm3

SL_RU ★★★ ()
Ответ на: комментарий от SL_RU

Еще раз объясняю, почему HAL — дерьмо!

Когда ты пишешь без внешних либ, тебе нужно лишь читать даташит. Если же ты пишешь с калокубом, тебе нужно не только даташит читать, но и исходники этих либ (мало ли что там накосячили), что только усложняет разработку!

Нет никакого смысла разбираться в даташите, если это уже сделали за тебя

Да что ты говоришь! Не надо тут бред нести. Я уже несколько десятков стонов любителей калокуба видел на тех же казусах и изиэлектрониксах, когда они пытались код с одного камня на другой портировть. Типа «кал же кроссплатформенный!».

Да, там есть баги и ошибки, но значительно меньше, чем в locm3

Т.к. после SPL я ни в каком говне ковыряться больше не желал, то исходники кала, понятное дело, не смотрел. Но то, что было в SPL — это лютый треш! Даже opencm3 по сравнению с этим трешем — дар свыше!

anonymous ()
Ответ на: комментарий от anonymous

Не прогай я на стмки уже больше двух лет, возможно согласился бы с тобой. Но с ХАЛом уже сделал множество всевозможных устройств различной сложности. Писать под хал мне удобно, но главное - они работают и я уверен в их надёжности. Большего мне не надо.

С портированием бывают проблемы, но они решаются за полчаса. Буквально перед новым годом перенёс огромный проект с STM32F4 на STM32L4 без проблем - работает до сих пор хорошо.

Не буду больше спорить. Некоторые прогают на Keil и им тоже хорошо.

SL_RU ★★★ ()
Ответ на: комментарий от SL_RU

А некоторые и на асме спокойно под STM32 пишут...

В общем, фломастеры, как говорится.

Но таки если хочется написать что-то понятное, что и через 10 лет можно будет завести, HAL не годится.

anonymous ()

Вот уж не думал, что буду согласен с Эдиком, но да - HAL то еще говно. То, что он «упрощает» разработку, не делает его годным.

Meyer ★★★★ ()
Ответ на: комментарий от SL_RU

С Эдиком спорить - только если душа просит набросить он упёртый.

Dark_SavanT ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.