16+
Вторник
20 ноября
Вход |Карта сайта | |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Микроконтроллеры

 
   Новая тема Правила Регистрация Поиск »» Архив
Вернуться в конференциюТопик полностью
Tech_  (14.09.2018 18:36, просмотров: 6256)
И на старуху бывает проруха. 
Взялся за доработку старого проекта, который не трогал чуть больше двух лет (на прошлой работе). Добавил функционал в прибор, и на испытаниях первой партии вылез случилось странное. Небольшая часть приборов (автономных) стала заканчивать работу раньше установленного времени (случайно). Копал два дня, гонял несколько приборов, отладчик никак не помогал (неисправность не проявлялась). Стал думать при каких условиях внесенные изменения вообще могут к такой ситуации привести, при условии, что логика программы не нарушается. Есть указатель на функцию, который инициализируется нулём. Т.е. при вызове функции по свежему указателю происходит почти рестарт программы, что похоже на результат сбоя. Но в программе есть не инициализированная глобальная переменная (как бы, по умолчанию, равна нулю) которая должна принять отличное от ноля значение при присвоении указателю первого же осмысленного значения. Лезу в файл *.lkr (да, PIC MPLAB) и вижу c018i.o, а нужно было c018iz.o. Т.е. глобальным переменным не присваивалось нулевое начальное значение.
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7527 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXVIII