при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
В какую тему не зайди- везде Rapra. Какой он вездесущий, как барбос во всех темах отметился. Его очень много на этом сайте.ARV писал(а): пользователь Rapra
Их не нужно помнить наизусть. Нужно ПРИМЕРНО помнить функционал периферии.ARV писал(а): Вт июн 30, 2026 20:25:16 только если тебя сейчас посадить "голенького" за комп - ты не сможешь ничего сделать без рефмануалов, поскольку все равно не помнишь наизусть все эти кошмарные регистры и их назначение...
Говорят ОБО ВСЕМ. Я же сказал, подсказки помогают, если есть какой-никакой опыт.ARV писал(а): Вт июн 30, 2026 22:51:35 Просто поля структуры мало что скажут без рефмануала под рукой. Имхо.
На мой взгляд, opencm3 более приличная в плане реализации различных вспомогательных функций. Конечно, ее тоже нельзя использовать: оверхед адский + вместо трех-четырех документов (rm, datasheet, errata и иногда тот или иной appnote) придется еще и мануал на библиотеку читать.КРАМ писал(а): Вт июн 30, 2026 23:01:29Кстати, я часто перехожу в тело функций библиотеки (SPL), чтобы посмотреть поле структуры.
Саму библиотеку я не использую, патамушта она заметно ограничивает функционал периферии и создает избыточный код, который порой мешает. Предпочитаю однородный стиль написания кода. То есть, если библиотека не всегда пригодна, я не буду ее использовать и все пишется на регистрах. За исключением некоторых функций CMSIS.
порог вхождения в "прелести" С++ намного выше, чем в Си. соответственно, HAL++ будет во много раз менее популярен... думаю, причина в этом.linux_rulezz писал(а): Ср июл 01, 2026 09:09:44 до сих пор никто на шаблонах и прочих прелестях c++26 не сделал для STM32 свой "hal"
Удивительно, но еще в 2017 году вы, будучи любителем выжимающим последние крохи производительности из AVR, уже предвидели подобное развитие событий )ARV писал(а): Ср июл 01, 2026 07:01:41Я пришёл к выводу, что погоня за оптимальностью кода, чтобы ничего там не мешало, это или крайне редко необходимо, или продиктовано ЧСВ программера. Ну вот я пока не могу представить, чем хуже запуск DMA халом против запуска конкретным битом регистра? Десятком лишних команд? И что, в чем ужас?
ARV писал(а):если вдруг мне подвернется какой-то коммерческий проект, решить который будет проще на ARM, я поступлю ровно так, как все ARM-исты: я возьму готовое и быстро-быстро добыдлокодю до нужного. ни о какой оптимизации я и не начну даже задумываться - не для того ARM придуман.
Еще раз. НЕ НУЖНО запоминать названия регистров и и их битовых полей. Вообще не нужно.ARV писал(а): Ср июл 01, 2026 07:01:41 Чем чаще вы используете, скажем, DMA, тем лучше держатся в вашей голове названия битиков и регистров. Но тем скорее забываются те, которые не используются, например, UART.
Причем тут ЧСВ?ARV писал(а): Ср июл 01, 2026 07:01:41 Я пришёл к выводу, что погоня за оптимальностью кода, чтобы ничего там не мешало, это или крайне редко необходимо, или продиктовано ЧСВ программера. Ну вот я пока не могу представить, чем хуже запуск DMA халом против запуска конкретным битом регистра? Десятком лишних команд?
так это вы мне в плюс или минус записываете?Adrift писал(а): Ср июл 01, 2026 09:40:28 Удивительно, но еще в 2017 году вы, будучи любителем выжимающим последние крохи производительности из AVR, уже предвидели подобное развитие событий
а вот тут другой угол, о который можно убиться: макросы Си настолько убогие, что практически 90% идей реализовать невозможно. макросы древнейшего asm51 были круче в сотни раз: там былы директивы повтора, сканирования по списку и т.п.!linux_rulezz писал(а): Ср июл 01, 2026 09:45:00 Что-то вроде "hal на С" можно написать при помощи макросов и true inline функций. Без необходимости на каждый чих вызывать отдельную функцию.
не знаю, что за стиль... но сам поступаю в чем-то так же, как вы:
ну так я это и говорил - с чем вы спорите? не помнишь - без даташита беспомощен. помнишь - между разными МК будешь беспомощен... принцип DMA и из института помню/знаю, но конкретная реализация все равно загадка в каждом случае. и избыточный HAL меня спасает.КРАМ писал(а): Ср июл 01, 2026 10:06:12 Когда помнишь принципы, то любой битик с ожидаемым функционалом найдется в даташите буквально за минуту.
это большой плюс HAL - он для всех одинаковКРАМ писал(а): Ср июл 01, 2026 10:06:12 Поэтому, чем меньше документации участвует в тексте исходника, тем проще тому, кто разбирается в коде после тебя.
а вы пробовали сами, или это теория? благодаря избыточности как раз и достигается минимум погружения в ерраты и изучения прочих документов. издержки - см. выше - ничтожные, эффективность и сопровождаемость - высокая. так что, имхо, это ОЧЕНЬ разумный подход. Особенно для НАЧИНАЮЩИХ.КРАМ писал(а): Ср июл 01, 2026 10:06:12 На этом фоне разного рода HAL-ы выглядят избыточной сущностью, которая требует изучения наряду с первичными документами на МК.