
Сообщение от
Meta|_
Приятель недавно плакался, что используемый им микроконтроллер иногда (очень редко) обрабатывает прерывание не как обычно - за 2-3 мкс, а за десять. Контроллер стоит в преобразователе питания на несколько кВт, и последствия бывают довольно серьёзны. Собирался переделывать весь проект на ПЛИС.
Это вместо того, чтобы с прерываниями разобраться?
Offтопик:
P.S. У нас тоже такое недавно было - алгоритмисты всунули новый алгоритм в проект, и OS перестала быть реалтаймовой

Когда начали разбираться - они в высокоприоритетное прерывание всунули долго вполняюшуюся функцию, вместо того чтобы сделать форк с приоритетом пониже. Да еще и сама функция была как бы "сильно не отпимальной", и поставила колом всю систему. А все потому, что новая девочка тупо сгенерировала Си-шный код из под Матлаба, и даже не удосужилась посмотреть, чего он там нагенерировал.
Втык получила конечно не она, она только учится, что с нее взять, а руководитель ее группы.
Похожее было года полтора назад, когда изза еще одного "молодого" мы вдвоем просидели 3 или 4 дня, пытаясь понять аномальное поведение устройства в новом исполнении. в некоторых случаях. Симптомы были чисто "железными", причем чтобы их проявить нужно довольно много телождвижений и кучу времени (плюс извратиться припаять проводок к ножке QFN-чипа, чтобы повесить туда осциллограф). А предыдущее устройство, в котором эта "железная часть," абсолютно такая-же, не имело этих проблем.
И мы убили вдвоем столько времени, чтобы обнаружить что железо вообще не причем, а баг в новой прошивке, причем "детский" - вызов двух функции переставили местами. Поскольку в 99.99% случаев оно было бы пофигу. Но на оставшиеся 0.01% напоролись. Повторяю - симпомы были такие, что мы на 100% были что баг в железе на новой плате, а не в софте.
Социальные закладки