Про программистов

Jul 11, 2016 00:26

В последние годы в программирование разного рода контроллеров полезли все кому не лень. Причин этому - множество: начиная от появления продвинутых средств разработки, упрощающих первые шаги в этом направлении, и заканчивая ростом спроса именно на этот вид программирования. Да и собственно программеров стало заметно больше, на всех хорошей высокооплачиваемой работы уже не хватает. И все бы ничего, но практически за всеми программистами, пришедшими с персональных компьютеров, имеются два фатальный косяка: привычка расчитывать на неограниченные ресурсы, и святая вера в то, что любой косяк можно исправить относительно малой кровью, нужно только напрячься. Дабы не быть голословным - несколько примеров:


1. Одна, достаточно крупная контора, занимающаяся автоматизацией, решила запустить линейку своих управляющих контроллеров. Получилось неплохо, все работало, но настраивать их было неудобно (командная строка и правка конфигов в полный рост), и у руководства возникла здравая мысль: "а давайте запилим веб-интерфейс". Сказано - сделано, только писать этот интерфейс было поручено людям, разрабатывающим ПО для серверов, благо на контроллере был линукс. В результате - "значит так: ставим апач, на апач - мускул, потом еще пхп, потом надстройку над пхп, чтобы проще было, и потом сверху пишем интерфейс, весь динамический и на скриптах, чтобы все было круто". На младшей версии контроллера (с 16 мегами оперативки) эта хрень не запускалась вообще. На старшей (32 мегабайта) - дико тормозила. Помнится, я ходил к этим программистам, рассказывал про то, что самый маленький web-сервер весит всего несколько килобайт, про то, что сервер на статических страничках будет летать даже на арифмометре "железный феликс" - в ответ видел только непонимание и "да это же не круто, надо под каждый проект настраивать, а тут раз, и всё". К моменту моего увольнения оттуда (из-за задержек и невыплат зарплаты, кстати, что добавляет особый блеск данной ситуации) на складе лежала гора "младших" контроллеров на общую сумму в пару десятков миллионов рублей. Увы, в железку взять и воткнуть еще оперативы нельзя...

2. Простенькое устройство, работающее с микросхемой LTE-модема, построенное, кажется, на Cortex M0. Отдельной микросхемы с флешем/оперативой нет, ибо там реально все просто, должно поместиться в то, что уже встроено в процессор. Ага, как же: программист, чтобы не писать самому всю инициализацию и низкоуровневую фигню, цепляет одну библиотеку, вторую, все заебись, функционал готов процентов на 70, и тут внезапно кончается флеш-память. Чтобы освободить место - надо фактически заново, с нуля, писать программу. Сроки горят, заказчик рвет и мечет, чем там у них закончилось, я даже и не знаю. Флеш микроконтроллера, как оказалось - далеко не терабайтный винчестер.

3. IP-телефон с линуксом. Тоже какой-то АРМ. Флеш есть, память есть, для реализации функционала используются какие-то типовые библиотеки (не самим же писать, это надо изучать теорию, разбираться, а тут оппа, вызов с параметрами, и заебись). Библиотеки работают, но почему-то, при расширении функционала начались всякие глюки: то голос в трубке начнет хрипеть и пердеть, то кнопки перестанут нажиматься. Оказалось - тупо не хватает производительности контроллера. Более мощный контроллер не воткнуть - распиновка другая, надо переделывать половину схемы. Сейчас ищут, где можно взять более оптимизированные библиотеки, и параллельно таки изучают теорию: есть ненулевой шанс, что часть функций придется переделывать самим. Все-таки микроконтроллер - это далеко не Core 2 Duo

4. Автономное устройство с GPS-приемником и GSM-модемом. Казалось бы все учли: программа полностью влезла в память, не тормозит, оперативы хватает, работай и работай. Пиздец подкрался со стороны слова "автономное": оказалось, что если не заморачиваться всякими хитрыми режимами энергосбережения, то аккумулятор дохнет заметно быстрее, чем хотелось бы. Причем выяснилось это уже тогда, когда были закуплены аккумуляторы, изготовлены электронные модули и корпуса для этих устройств. Ставить другой аккумулятор - у него больше габариты, в корпус не влезает, да и что делать со старыми? Переписывать софт, чтобы исправить ошибку, необходимо практически с нуля, на это тупо нет времени, сейчас думают, что же делать: увы, в отличие от персоналки, провод с электричеством у мелких устройств есть далеко не всегда. Кстати, на самом деле это очень распространенный косяк: достаточно посмотреть, как сажают аккумулятор мобильника некоторые достаточно простые игрушки.

P.S. Когда я преподавал в университете, то всем студентам говорил "идите на спецкурс по микропроцессорам, пофиг, что там преподают только старые советские КР580", но прислушивались ко мне очень немногие. В итоге - имеем все вышеописанное в полный рост

Байки, Работа, Рукожопие

Previous post Next post
Up