Или вот еще такой был случай на производстве. Работал я тогда в конторе, которая занималась разработкой сервисных ботов. И отлаживали мы, значится, прототип.Программисты с самого начал мне говорили, что я пожадничал с выбором микроконтроллера, но я к микроконтроллерам той, 910й серии испытывал нежную привязанность еще со студенческих дней. И вот ближе к дэдлайну стало очевидно: весь необходимый объем программ в этот контроллер не поместится. Что было особенно обидно, так это то, что не хватало каких-то нескольких килобайт памяти.
Перестраивать код под новый микроконтроллер не было времени. Вносить в плату кардинальные изменения - тоже. Поэтому для инструкций, которым не хватало места, я решил использовать часть внешней памяти, предназначенной для хранения коэффициентов матриц нейронов.
Я запустил отладчик и был, мягко говоря, обескуражен. Потом посмотрел на плату. Потом начал тихо матерится. Сам же в предыдущий вечер дошел до той степени отчаяния, что уходя с работы вставил вместо любимой "девятьсотдесятки" мерзкую "девятьсотсороковку". Ну да, памяти в два раза больше, и совместимость инструкций с "девятьсотдесяткой" полная. Но и цена с энергопотреблением больше (повышенное энергопотребление я вообще ничем, кроме криворукости разработчиков, не могу объяснить). В любом случае, забывать события предыдущего вечера - тревожный знак. Я твердо решил взять отпуск после окончания этого проекта. Радости не прибавлял и тот факт, что я умудрился уколоться ножкой любимого контроллера, перед тем, как вставить его в разъем на плате.
Вторично запустил отладчик. Забудьте о том, что я был обескуражен в предыдущий раз. Теперь я был просто шокирован. Медленно посмотрел на плату, н экран отладчика, снова на плату... "Память: 4106 Кб". Да, я не оговорился. Не 4096, а 4106. Перезагрузил отладчик - 4106. Перезагрузил контроллер - 4106. Вытащил контроллер из разъема и вставил его обратно (мало ли, из-за контактов какая-то лажа) - 4116. "В отпуск, срочно в отпуск," - подумал я. Щелкнул рубильником на силовом щите. Подождал. Щелкнул опять. Включил питание платы. Включил отладчик. 4116. Опять вытащил контроллер из разъема, принялся задумчиво рассматривать керамический корпус. Не найдя для себя ничего нового, вставил на его место проклятую "940-ку". 8192. Вытащил 940ку, вставил другую 910ку. 4096. Вытащил её, вставил нежданно ставший "особенным" чип - 4116.
В общем, сдали мы тот проект и ушел я в отпуск. А тот особый чип знакомому отдал, на тестах погонять. Встретился с этим знакомым после отпуска - и не узнал. Осунувшийся, под глазами - мешки, в глазах - блеск нездоровый. отдал он мне этот чип, как выплюнул. Сказал, что это - что угодно, но не "девятьсотдесятый". Что схема расположения элементов на кристалле - нечеловеческая. И что сам он тоже, пожалуй, съездит отдохнуть куда-нибудь в ближайшее время.
Потом были затянувшиеся вечера за отладочной платой. В один из таких вечеров, отчаявшись понять, что превратило обычный с виду микроконтроллер в незнамо что, я со злостью сжал "девятьсотдесятку" в руке. Так, что та впилась мне ножками в кожу. "Память: 6132". Не верите? Вот и я не поверил. Долго не верил. А когда поверил - долго ржал. Потому что на фоне всех идей рождавшихся в те дни в моей голове, идея о микросхеме-вампире была даже сравнительно логичной. Думаете, я испугался? Да ничего подобного! Только дураки пугаются на пороге непознанного. Я принялся экспериментировать. Пожалуй, я был самым самоотверженным оверклокером за историю человечества. Что-то в этом контроллере было действительно особенным - то ли на корпус пошла керамика из какого-то древнего жертвенника, то ли в металл закрались частички неведомого разумного сплава, но остальные представители серии такого аномального поведения не проявляли. Итак, для "разгона" требовался контакт поверхности микроконтроллера с человеческой кровью. Эффективность "разгона" сильно зависела от количества и свежести крови. Чем больше крови было, и чем меньше времени прошло с тех пор, как она покинула сосуды владельца, - тем лучше. Консервированная кровь не оказывала какого-либо заметного эффекта. Группа и резус-фактор не имели значения. Кровь девственниц была не хуже и не лучше остальных. Не подумайте ничего плохого, я всего лишь ездил с иголкой в переполненных лифтах. Хотя вот мышей мне искренне жаль... Впрочем, кровь животных не давала ощутимого эффекта, так что я быстро остановился.
Изменения затрагивали не только объем памяти. Процессор постепенно становился быстрее, но, что самое интересное, после очередного "апгрейда" в нем формировалась собственная программа. Сначала это были скорее шумы, чем что-либо еще. Потом я начал узнавать элегантные процедуры создания структур данных и работы с ними. Постепенно сложность кода приблизилась к порогу моего понимания, а я, в свою очередь, - к порогу истощения. Я понял, что если так будет продолжаться и дальше, то этот процессор меня убъет. Либо отправит за решетку (я уже начинал рассматривал сценарии человеческого жертвоприношения).
Поэтому в один прекрасный день я собрался с силами и избавился о него. Что? Как именно я его уничтожил? Понимаете ли, в тот момент я уже уволился со старого места работы и перешел в "Medical Meccanica". Оставалось всего лишь внедрить этот микроконтроллер в один из аппаратов, над которым работал. Так, чтобы у него регулярно был доступ к свежей крови. Я действительно люблю микроконтроллеры, в конце концов.
Отредактировано Chofch (2009-11-11 20:28:13)