А вот посоветуйте книжек

Насоветовал тут в фейсбуке кучку книжек по программированию микроконтроллеров:

https://www.facebook.com/tikhonovruslan/posts/2193043937400492

В процессе обратил внимание, что большинство из них — это построенные примерно по одному шаблону учебные курсы, причем совершенно недостаточные в современных условиях. Вот откроем содержание практически любой из них и увидим примерно такой список тем:

  • Что такое микроконтроллер? (опционально — что такое ARM, Cortex, STM32 и так далее)
  • Устанавливаем среду разработки (без нее вот просто никуда, даже светодиодом не поморгать без Keil)
  • Пишем простейшую программу (тут половина читателей отваливается, потому что даже «простейшая» программа требует шаманства в виде настройки тактирования, и идет делать сайты на PHP)
  • Работаем с GPIO
  • Работаем с таймерами
  • Работаем со всякой остальной периферией
  • Тема для продвинутых — что такое DMA и как с ним жить
  • Тема для очень продвинутых — как в CubeMX накликать в проект FreeRTOS

На этом «стандартный» курс заканчивается — но дальше-то что? Рано или поздно в любом проекте на микроконтроллере “вырастает” несложная RTOS (или присутствует там с самого начала). При этом в литературе «для начинающих» это почему-то считается сложной темой, а книг «для продолжающих» почему-то нет. Вот где почитать, например, о том, как написать драйвер периферии или внешнего устройства? Как и когда использовать DMA? Да вот даже какие-то вопросы с потреблением памяти — покажите мне книжку, где было бы достаточно подробно расписано, что происходит со стеком в многозадачной системе во время обработки прерывания?

В общем, что есть хорошего на эту тему «для продолжающих», с описанием принятых «лучших практик»?

Чип-и-Дип обрадовал

Заказывал я в их интернет-магазине полтора года назад какие-то детальки. Не помню уже, под какой проект — но с трудом наскреб на 300 рублей (минимальный заказ в интернет-магазине). Помню зато, что они слегка облажались — положили пустую ленточку с какими-то резисторами (видимо, отрезали от заправочного конца в катушке). Ну написал я им тогда, пожаловался и забил — ну не поеду я туда второй раз ради двух десятков резисторов распространенного номинала.

Так вот, сегодня, спустя полтора года, приходит мне email — «по заказу такому-то есть товар по претензии, хотите забрать?» Вот не вспомнил бы уже, что там было — пришлось искать и смотреть, что же я такое тогда заказывал.

Про Boeing страшилки

Почитал тут фейсбучные обсуждения недавних катастроф Boeing 737 MAX (индонезийского и эфиопского). Ситуевина, pardon my french, совершенно охуительная: в далеком 1967 году фирма Boeing выпускает новую модель Boeing 737. На протяжении последующих 50 лет самолет несколько раз модернизируют, увеличивают «на манер армянского свадебного лимузина», вкорячивают двигатели побольше, … — и так доходят до семейства Boeing 737 MAX. При этом аэродинамика ухудшается, появляется тенденция к сваливанию в некоторых режимах, и чтобы это как-то компенсировать (а точнее — чтобы не надо было переучивать пилотов со «старых» 737) — вкорячивают систему под названием MCAS — Maneuvering Characteristics Augmentation System.

Система эта контролирует угол атаки и в некоторых ситуациях изменяет угол установки стабилизатора. При этом на 737 всего два датчика угла атаки. Для полетов в «ручном» режиме, по понятиям далекого 1967 года, это нормально — левый датчик выводит показания командиру, правый — второму пилоту, если один из них начинает врать — то экипаж как-то разберется. С автоматикой же все обстоит хуже — причем судя по комментариям, MCAS вообще работает только от одного датчика, а при его неисправности — начинает творить всякую херню.

Только после первой катастрофы Boeing опубликовал описание работы MCAS и рекомендации по действиям при ее отказе — но, говорят, не очень грамотные, способные усугубить ситуацию. Видимо, не помогло.

А я вот слегка охренел от того, как эта самая MCAS реализована — с одним только датчиком. Уже как-то особо не удивляет, скажем, глючная автоэлектроника — но сохранялось какое-то уважение к буковкам «Aerospace». Увы, и тут теперь все плохо.