ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 апреля
384625 Топик полностью
fk0, легенда (01.02.2013 13:54, просмотров: 107) ответил Vladimir Ljaschko на Какой листинг в аппаратном прерывании? Я загнул, конечно. Но на eval kit работает, значит все правильно сохраняется. Количество сбоев зависит от количества обращений к памяти (по другим адресам) в прерывании.
Неправильный вывод! Если одно изделие из 1000 -- это ни о чём не говорит. А если хоть одно не работает -- есть ошибка. Я потому и говорю, может на evaluation kit'е быстрей/медленее работает и не успевает подпортить регистр именно в нужном месте. Байку расскажу. Есть изделие, продаётся массово и давно. Верней даже несколько разных, но код внутри примерно одинаковый. И тут выясняется... что в одной новой версии они начали "умирать". Т.е. тест на производстве проходят, всё ок. А на N-м включении помирают (будучи проданными), причём натурально: бледно мигают диодиком и ничего уже не оживляет. Причём не все. Некоторые не умирают. Думаешь в чём дело было? Хороший такой говнокод занесённый ещё три года назад зависал и сбрасывался watchdog. И так в цикле. И причём зависал он не так просто, а нужно было в определённое время вызвать функцию, ни раньше не позже, плюс-минус полсотни тактов и не глючит. И думаешь почему именно на N-м включении, почему сразу не глючили и если не умер, то далее всю жизнь нормально работал? Там "конфигурация" прибора во flash несколько записей. Он их при старте считывает последовательно (на что тратит время) все (сколько записано) и выбирает нужную. Записано мало -- не глючит. Записано ровно N -- умирает. Записано больше, чем N -- уже больше никогда в жизни не умрёт. Те кто много "настраивали" не выключая питания записали много и всё ок. А кто включил, поменял один параметр, выключил и так N раз -- у тех умирали. Какая казалось бы неоднозначная связь. А в других версиях и других приборах с этим же говнокодом никак не проявлялось за длительное время и не проявится. Время не совпадает, вот эти самые +-50 тактов.
[ZX]