Насоветовал тут в фейсбуке кучку книжек по программированию микроконтроллеров:
https://www.facebook.com/tikhonovruslan/posts/2193043937400492
В процессе обратил внимание, что большинство из них — это построенные примерно по одному шаблону учебные курсы, причем совершенно недостаточные в современных условиях. Вот откроем содержание практически любой из них и увидим примерно такой список тем:
- Что такое микроконтроллер? (опционально — что такое ARM, Cortex, STM32 и так далее)
- Устанавливаем среду разработки (без нее вот просто никуда, даже светодиодом не поморгать без Keil)
- Пишем простейшую программу (тут половина читателей отваливается, потому что даже «простейшая» программа требует шаманства в виде настройки тактирования, и идет делать сайты на PHP)
- Работаем с GPIO
- Работаем с таймерами
- Работаем со всякой остальной периферией
- …
- Тема для продвинутых — что такое DMA и как с ним жить
- Тема для очень продвинутых — как в CubeMX накликать в проект FreeRTOS
На этом «стандартный» курс заканчивается — но дальше-то что? Рано или поздно в любом проекте на микроконтроллере “вырастает” несложная RTOS (или присутствует там с самого начала). При этом в литературе «для начинающих» это почему-то считается сложной темой, а книг «для продолжающих» почему-то нет. Вот где почитать, например, о том, как написать драйвер периферии или внешнего устройства? Как и когда использовать DMA? Да вот даже какие-то вопросы с потреблением памяти — покажите мне книжку, где было бы достаточно подробно расписано, что происходит со стеком в многозадачной системе во время обработки прерывания?
В общем, что есть хорошего на эту тему «для продолжающих», с описанием принятых «лучших практик»?