Stm32 с чего начать изучение...

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Вымогатель припоя
Сообщения: 580
Зарегистрирован: Вт окт 01, 2024 15:22:33

Сообщение Adrift »

linux_rulezz писал(а): Ср июл 01, 2026 11:11:51Вот так - через макросы - я упростил задачу разбора текстового протокола на МК. От cpp там только constexpr'ы (для вычисления хэшей команд на стадии компиляции), которые в С, к сожалению, еще не завезли.
Это так не работает. Там constexpr только hash(), если сделать ее consteval или в месте вызова добавить constexpr:

Код: Выделить всё

constexpr uint32_t h = hash(command);
то получим ошибку, т.к. command - обычный массив внутри обычной не constexpr функции. Если хэши и считаются на этапе компиляции, то потому, что оптимизатор это может, а не язык гарантирует.
Реклама
Вымогатель припоя
Сообщения: 580
Зарегистрирован: Вт окт 01, 2024 15:22:33

Сообщение Adrift »

ARV писал(а): Ср июл 01, 2026 10:18:54так это вы мне в плюс или минус записываете? ;)
Я не знаю. Сами как считаете, по-быстрому быдлокодить коммерческие проекты хорошо или плохо? )
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18759
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Adrift писал(а): Ср июл 01, 2026 12:06:32 Сами как считаете, по-быстрому быдлокодить коммерческие проекты хорошо или плохо?
а если по-быстрому, но не быдлокодить? или сказанное в 2017 году не может измениться с годами?

я не могу понять, откуда у всех мне оппонирующих такая уверенность, что HAL-ом невозможно создать корректное, стабильное, надежное приложение? Если все такие чистюли и HAL-ом не пользуются, как они могут знать о его недостатках или проблемах? Теоретически? Это не аргумент. Вот если был негативный опыт - это я мог бы обдумать. А просто так прислушиваться к недоказанному шуму - как-то не нормально...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 25497
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

ARV писал(а): Ср июл 01, 2026 10:18:54 вы выигрываете исключительно несколько микросекунд при ваших извратах с DMA за счет отказа от "избыточных" функций. если для вашего проекта это критично - так и правильно, но разве нужно всем так делать?! запуск DMA и его перенастройка в большинстве применений происходят в "безопасные" моменты времени работы устройства, когда любые издержки в микросекунды совсем не страшны.
Мягко говоря, чушь от начала до конца. Вы пытаетесь свой примитивный опыт экстраполировать на типовые задачи.
Микросекунды - это вечность. Ясен пень, что для УАРТа на скорости 9600 это непринципиально, как и сам ДМА там совершенно не нужен. Чисто для ЧСВ. :wink: Типо я осилил ДМА... ДМА очень часто участвует в синтезе сигналов, включая управление символьным модулятором. То есть нужно на лету переключать массивы выводимые в ШИМ, формируя код на входе модулятора. Это как один из множества примеров. Там речь идет о критичности в 100 нс и менее.
ARV писал(а): Ср июл 01, 2026 10:18:54а вы пробовали сами, или это теория? благодаря избыточности как раз и достигается минимум погружения в ерраты и изучения прочих документов. издержки - см. выше - ничтожные, эффективность и сопровождаемость - высокая. так что, имхо, это ОЧЕНЬ разумный подход. Особенно для НАЧИНАЮЩИХ.
Еще один поспешный вывод.
Еще раз. Любые универсальные библиотеки игнорируют специфические особенности. То есть код переносимый на любую платформу может содержать только общие для всех этих платформ сущности. А это означает, что мы выбрасываем полезные фичи, которые явились основой выбора платформы и поддерживают конкурентные преимущества проекта.
Сопровождаемость не означает отсутствие необходимости иметь дОлжную квалификацию у сопровождающего. Примитивные проекты не требуют особых усилий для сопровождаемости.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 25497
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

ARV писал(а): Ср июл 01, 2026 12:13:54 откуда у всех мне оппонирующих такая уверенность, что HAL-ом невозможно создать корректное, стабильное, надежное приложение?
Несложное и нетребовательное к скорости - можно. Причем скорость - это ОТНОСИТЕЛЬНОЕ понятие. Есть критичные к потреблению в питании проекты, где нельзя разгонять МК как заблагорассудится. Скажем, быстрее 10 МГц - нельзя. А требования к диаграмме остаются высокими - менее 1 мкс, например.
Реклама
Мучитель микросхем
Сообщения: 439
Зарегистрирован: Ср сен 02, 2015 07:47:20

Сообщение HardWareMan »

КРАМ писал(а): Ср июл 01, 2026 12:25:06 Еще раз. Любые универсальные библиотеки игнорируют специфические особенности. То есть код переносимый на любую платформу может содержать только общие для всех этих платформ сущности. А это означает, что мы выбрасываем полезные фичи, которые явились основой выбора платформы и поддерживают конкурентные преимущества проекта.
Не факт. Могут быть как явно в ручную задаваемые так и автоматически задаваемые ключи сбора, которые указывают целевую систему для оптимизации. В тех же компиляторах такое практикуется очень давно, что при сборке кода под конкретную систему используются оптимизации именно под эту систему, хотя исходный код будет без проблем собираться и на других без переделки. Но это, конечно же, не означает, что все универсальные библиотеки и/или компиляторы реально используют это.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25497
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

HardWareMan писал(а): Ср июл 01, 2026 12:31:56 Не факт. Могут быть как явно в ручную задаваемые так и автоматически задаваемые ключи сбора, которые указывают целевую систему для оптимизации.
Вы не о том. Речь шла про периферию, а не про какой нибудь копроцессор реализующий дополнительный набор команд ядра.
Компилятор ничего не знает про периферию.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18759
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

в общем, КРАМ, вы, как и всегда, экстраполируете свой личный опыт на всех вокруг, ноне позволяете это делать другим.
КРАМ писал(а): Ср июл 01, 2026 12:25:06 Там речь идет о критичности в 100 нс и менее.
вы измеряли задержку, вносимую HAL-ом? уверены, что она будет критичной для таких гонок? смотрел ли кто-нибудь листинг того, что остается от HAL-овских функций после оптимизации? я честно признаюсь - я не смотрел, но это не повод (для меня) слепо верить всему, что тут говорят.
КРАМ писал(а): Ср июл 01, 2026 12:25:06 Примитивные проекты не требуют особых усилий для сопровождаемости.
я уже не один раз говорил, вы точно не в том форуме излагаете свои умозаключения: тему прочтите - она для НАЧИНАЮЩИХ. с каких это пор начинающие начинают с критичных до 100 наносекунд проектов с экзотическими примерениями DMA?! последний раз: всё, что вы говорите, я не опровергаю, но считаю всё это абсолютно неуместным в теме для подсказок начинающим!!! если вы первокласснику начнете засирать мозг дифференциальным счислением, гения из него все равно не вырастет, а вот чморить его в школе будут однозначно.
HardWareMan писал(а): Ср июл 01, 2026 12:31:56 Могут быть как явно в ручную задаваемые так и автоматически задаваемые ключи сбора, которые указывают целевую систему для оптимизации.
и в той же FreeRTOS, да и в HAL полно директив условной компиляции, которые делают код одного МК непохожим на код другого. И целые куски кода с запуском DMA в "мощных" режимах просто вырезаются из исходников для "слабых" контроллеров... Что в итоге получается - не могу утверждать, что идеал, т.к. повторяю: листинги не смотрел. Но по интуиции предполагаю, что избыточность там остается минимальная, вроде принудительной установки в регистры тех значений, что там после сброса и так установлены (моё предположение!).
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 703
Зарегистрирован: Пн сен 15, 2025 08:43:23
Откуда: Маленький СССР посреди террористов

Сообщение linux_rulezz »

Любители "хала" могут почитать эту заметку. Человек пытался выжать 12Мбод из "калокуберского" USB-CDC. Мы с COKPOWEHEU предложили свое попробовать, ТС удивился…
Windows must die!
Контактная информация:
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 346
Зарегистрирован: Ср мар 09, 2016 08:07:41

Сообщение JackSmith »

ARV писал(а): Ср июл 01, 2026 13:12:45Но по интуиции предполагаю, что избыточность там остается минимальная
ну да, 6 КБ на простой блинк на HAL вместо сотни байт на CMSIS. эти 6 КБ очевидно делают блинк надежным и качественным ПО.

откуда у бывших AVRшников такая любовь к мутными либам? в AVR все делалось на регистрах и ассемблере.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18759
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

JackSmith писал(а): Ср июл 01, 2026 14:12:30 откуда у бывших AVRшников такая любовь к мутными либам? в AVR все делалось на регистрах и ассемблере.
ну да... пока я делал на "регистрах и ассемблере" поддержку ЖКИ 1602, те, кто пользовал Code Vision делали всякие регуляторы, термометры с этим ЖКИ... а ардуинщики делали квадрокоптеры, роботов, балансирующих на шаре и т.п. "крутоту". на STM32 ровно то же самое происходит.
JackSmith писал(а): Ср июл 01, 2026 14:12:30 ну да, 6 КБ на простой блинк на HAL вместо сотни байт на CMSIS. эти 6 КБ очевидно делают блинк надежным и качественным ПО.
надежность и качество определяется не размером. размер имеет значение несколько в других случаях.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 25497
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

ARV писал(а): Ср июл 01, 2026 13:12:45 вы измеряли задержку, вносимую HAL-ом? уверены, что она будет критичной для таких гонок? смотрел ли кто-нибудь листинг того, что остается от HAL-овских функций после оптимизации? я честно признаюсь - я не смотрел, но это не повод
Это очень смешно. HAL - это открытая библиотека. Не нужно ничего измерять. Достаточно посмотреть библиотечный код и дизасм после оптимизации.
В отличии от вас, я смотрел. Оверхед для моего класса задач недопустимый. Достаточно простой обертки в функцию, чтобы создать трех...четырех кратный оверхед. Я уже не говорю про передаваемые в функцию аргументы... :facepalm:
ARV писал(а): Ср июл 01, 2026 13:12:45тему прочтите - она для НАЧИНАЮЩИХ. с каких это пор начинающие начинают с критичных до 100 наносекунд проектов с экзотическими примерениями DMA?!
С какого перепуга вы решили, что формирование ШИМ посредством DMA является экзотикой? :facepalm:
Начинающий может начинать с любых типов задач. Важно понимать, что следование упрощенным шаблонам ведет к формированию навыков затрудняющих понимание физических процессов в схеме. Это как считать, что можно приобрести серьезные знания с помощью радиолюбительской беллетристики. Но для людей, которые не претендуют ни в какой перспективе овладеть УНИВЕРСАЛЬНЫМИ методами разработки, такого рода библиотеки вполне годная тема. Но эта тема является на самом деле тупиком.
ARV писал(а): Ср июл 01, 2026 13:12:45в HAL полно директив условной компиляции, которые делают код одного МК непохожим на код другого.....(моё предположение!).
Вы просто ничего не понимаете в этом.
Да, условная компиляция исключает или добавляет функционал в зависимости от наличия или отсутствия некоторого функционала или даже периферийного модуля.
Только к теме разговора об оверхеде и отсутствию части важного функционала в библиотеках это не имеет отношения. При чем ВООБЩЕ НИКАКОГО. В огороде бузина, а в Киеве дядька.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 346
Зарегистрирован: Ср мар 09, 2016 08:07:41

Сообщение JackSmith »

ARV писал(а): Ср июл 01, 2026 14:19:04 ну да... пока я делал на "регистрах и ассемблере" поддержку ЖКИ 1602, те, кто пользовал Code Vision делали всякие регуляторы, термометры с этим ЖКИ... а ардуинщики делали квадрокоптеры, роботов, балансирующих на шаре и т.п. "крутоту"
не стоит валить все в одну кучу.
1. ардуино это модель потребления а не программирования. купите квадркоптер, играйте с ним сколько влезет, это ничем не будет отличаться от "кодинга" на ардуино.
2. может вы слишком медленно кодите и это не ваше?
я программировал с детского садика на всем, что было не прибито гвоздями. а вы хотите все и сразу?
Друг Кота
Аватара пользователя
Сообщения: 25497
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

ARV писал(а): Ср июл 01, 2026 14:19:04 ардуинщики делали квадрокоптеры, роботов, балансирующих на шаре и т.п. "крутоту"
А вы не думали, что ваш образ мысли отдает папуасиной? :facepalm:
Если умный дядя написал библиотеку для квадракоптеров, то это не значит, что ардуинщик применивший эту библиотеку создал код для квадракоптера. Он просто скопировал чужую работу.
Но тут нет ничего зазорного, если не претендовать на самостоятельную разработку. То есть человек использовавший такую библиотеку НИЧЕМУ НЕ НАУЧИЛСЯ.
Проблема в этом и только в этом. Такой продукт очень низко ценится на рынке и так же низко ценится такой уровень компетенций на рынке труда. Ибо порог входа ниже плинтуса.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 346
Зарегистрирован: Ср мар 09, 2016 08:07:41

Сообщение JackSmith »

ARV писал(а): Ср июл 01, 2026 14:19:04 надежность и качество определяется не размером. размер имеет значение несколько в других случаях.
зато очень хорошо определяют ограниченность платформы. с этими 6 КБ ВЫ НИЧЕГО НЕ СДЕЛАЕТЕ. а нормальное программирование предполагает кучу способов сделать одно и тоже. конечный результат определяет только цель и способ разработки.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18759
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

КРАМ писал(а): Ср июл 01, 2026 14:32:01 Оверхед для моего класса задач недопустимый.
выделено мной
кроме вашего класса другие не существуют?
КРАМ писал(а): Ср июл 01, 2026 14:32:01 следование упрощенным шаблонам ведет к формированию навыков затрудняющих понимание физических процессов в схеме
существует огромное колчество задач, где схема вообще на последнем месте, а первична - логика управления ею. но вы делаете вид, что не в курсе. причем таких задач очень много, намного больше, чем подобных вашим - просто они не такие "крутые", чтобы вы снизошли до их признания...

и, если бы ваше процитированное утверждение было истинным, то в первом классе не утверждали бы, что делить на 0 нельзя... а позже не рассказывали бы, что перестановка слагаемых всегда даёт один и тот же результат... и так далее. упрощенные шаблоны способствуют пониманию (если на то есть желание).
КРАМ писал(а): Ср июл 01, 2026 14:32:01 овладеть УНИВЕРСАЛЬНЫМИ методами разработки
универсальным методом строительства несколько тысяч лет было возведение построек из камней и цемента. но существует, помимо этого, множество НЕ УНИВЕРСАЛЬНЫХ методов, дающих отличный результат, порой превосходящий все остальные. владеть УНИВЕРСАЛЬНЫМИ методами не означает ПОСТОЯННО И ТОЛЬКО ИМИ ПОЛЬЗХОВАТЬСЯ. у вас же с логикой все ОК, как же вы приравниваете это?!
КРАМ писал(а): Ср июл 01, 2026 14:32:01 В огороде бузина, а в Киеве дядька.
это потому, что вы каждое высказывание трактуете без контекста, предшествующего ему. к оверхеду условная компиляция не относится, она относится к единому уинтерфейсу верхнего уровня для РАЗНЫХ перифериных устройств сходного назначения. именно универсальность такого интерфейса даёт мне основание утверждать, что глубоко вникать в тонкости "нижней" реализации необходимо далеко не всегда.
JackSmith писал(а): Ср июл 01, 2026 14:35:13 я программировал с детского садика на всем, что было не прибито гвоздям
молодец, возьми с полки пирожок
КРАМ писал(а): Ср июл 01, 2026 14:37:51 Если умный дядя написал библиотеку для квадракоптеров, то это не значит, что ардуинщик применивший эту библиотеку создал код для квадракоптера. Он просто скопировал чужую работу
тот факт, что вы не изобрели собственный DSP, а тупо взяли готовое, вы, конечно, в качестве возражения не примите? и язык Си тоже не мной изобретен, и даже stdlib! ужас! я вообще ничего нового не могу сделать - ведь оно состоит из уже сделанного кем-то когда-то!!! возвращаясь к теме УНИВЕРСАЛЬНЫХ методов - вы занимаетесь плагиатом, т.к.вся теория DSP-обработки не вами придумана!!!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18759
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

JackSmith писал(а): Ср июл 01, 2026 14:38:28 с этими 6 КБ ВЫ НИЧЕГО НЕ СДЕЛАЕТЕ
я ровно то же самое слышал, когда агитировал в темах AVR использовать printf и sprintf для вывода хоть куда - от ЖКИ до 7-сегментников. дескать, оверхед - ужас! а я применял, и буду применять. и сейчас второе, что я сделал на STM32, так это скрыл низ USARTа за вызовами printf-a (с небольшим линейным буфером и DMA). и ваши страшилки меня не пугают, в МК 64К флеша.
Последний раз редактировалось ARV Ср июл 01, 2026 15:01:34, всего редактировалось 1 раз.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18759
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

теперь вопрос: если идиот вас просит о помощи, вы так и будете ему напоминать, что он идиот, или все-таки снизойдете до реальных советов? не из разряда "надо было в школе пятерки получать" или "надо было лекции не прогуливать"?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 346
Зарегистрирован: Ср мар 09, 2016 08:07:41

Сообщение JackSmith »

ARV писал(а): Ср июл 01, 2026 14:57:11 если идиот вас просит о помощи
у идиота и просьбы идиотские. это не грубость, просто факт.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18759
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

Мой уютный бложик... заходите!
Контактная информация:
Ответить

Вернуться в «ARM»