March 14th, 2019

Бритоголовый и С1-97

Про 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”. Увы, и тут теперь все плохо.

Запись опубликована в блоге Шуры Люберецкого. Вы можете оставлять свои комментарии там, используя свое имя пользователя из ЖЖ (вход по OpenID).

Бритоголовый и С1-97

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

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

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

Запись опубликована в блоге Шуры Люберецкого. Вы можете оставлять свои комментарии там, используя свое имя пользователя из ЖЖ (вход по OpenID).

Бритоголовый и С1-97

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

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

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

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

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

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

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

Запись опубликована в блоге Шуры Люберецкого. Вы можете оставлять свои комментарии там, используя свое имя пользователя из ЖЖ (вход по OpenID).