Ну у него мысль - или перечисляйте все, или не пишите ничего. Потому как у него только два взаимоисключающих варианта. У человека свое понимание "как должно быть". Как инженер я его понимаю, это здравая логика с точки зрения оптимальной работы. Но как человек делающий ошибки я могу понять и ST. Хотели как лучше - всем не угодили.
Данный пример оформления технической документации просто ничто, в сравнении с тем что творится со свежими МК, например H743. Может с железной точки зрения там все ок, а вот с HAL полный бардак. У меня к примеру USB не заработал в DMA режиме. Я все перепроверил - размещение кучи/стека в правильной оперативке (их там штук 5 разных), настроил MPU чтобы отключить кеширование на буферах USB, перепроверял прерывания, консультировался с более опытными коллегами - ничего. Передает что-то около 312 слов по 4 байта и затыкается. И все равно - по одному байту передаешь, или по 10 - суммарно доходит до некоего предела и затыкается. Можно конечно было упороться и дебажить до последнего, но это время. Переключил на прерывания и пока оставил. А тут недавно обнова HAL была, гляжу в гите - много правок в юсб драйвере, в секциях с дма. Мб поправили, надо будет затестить.
Еще какой-то косяк с халовским юартом - недоделан режим прерывания по простою. Специальные функции вроде бы есть, но они не рабочие. По гайдам из инета эти спец функции не используются. Вручную конфигурируются прерывания и обычной функцией запускается дма на прием. И да, так оно работает. Вот так и живем. Самому делать с самых низов? За такое время никто платить не будет, это слишком дорого. Эзернет, юсб, спаи, CAN, как следствие фриртос, TCP сервер, может еще HTTP сервер. Знаю что здесь есть советчики малинок+линукс. Мы и такое делаем. Но заказчик такое отбросил - никаких линуксов, все должно быть жестко и риалтайм.


