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

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

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

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

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

caxapa

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

AVR PIC MSP PLD,FPGA,DSP 

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

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

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

 
Новая темаПравила РегистрацияСтатистика Архив
Вернуться в конференциюТопик полностью
Nikolay_Po  (30.11.2019 21:05) , в ответ на На всякую пожарку поясню что это я дебажу не свежий и не свой код. В код изменения я не вносил. автор: RxTx
То, что собранный код в железе работает 5 лет, совершенно не означает, что в нём нет ошибок. А разница между рабочей прошивкой и отладочной есть, отладчик забирает десятки байт памяти, поэтому не исключены подвижки объектов в ОЗУ. Например, 
выполнили не корректное преобразование типов между 16 и 8 битами. И при сдвиге на байт - вуаля - аппаратный сбой, ошибка адресации. Или память для DMA или SIMD не объявили должным образом. Тоже. Нужны прописанные трэпы и прерывания, для начала с while(1);, чтобы понять, где виснет/сбрасывается. Не знаю, что там у вас за проект, требования и рамки, но если ресурсов не на пределе, рекомендую полностью сменить тулчейн на MPLAB X и XC16 и отрефакторить. Недавно имел опыт доработки чужого, рабочего кода на dsPIC30F6914A. Нужно было добавить Modbus RTU вдобавок к обычному UART. Как оказалось, старый код индусский (на самом деле таковым и был), дышит на ладан. И работа нарушается при любых мало-мальских изменениях. За два вечера переписал с HiTech C на XC16 (код электромагнитного расходомера). Самой большой трудностью была замена коммуникационных библиотечных функций. I2C заменил на машину состояний с очередью. АЦП перевёл на оверсэмплинг с более глубокой фильтрацией. Разделил задачи по приоритетам используя контроллер прерываний - для задач разного приоритета барл вектора прерываний неиспользуемой периферии. В общем, стало намного лучше, стабильнее и точнее. Для шин передачи данных добился такой надёжности, что при произвольных помехах, замыканиях на землю, код не вис, сохранял управляемость и восстанавливал связь с чипами обвязки сразу, как только внешнее воздействие завершалось. В итоге появилась возможность добавлять любой функционал в пределах ресурса CPU без влияния на работу расходомера. Но сама доработка, фактически, замена кода заняла уже пару месяцев свободного времени.
 [x][x][x][x][x][x] [x][x][x][x][x][x][x][x]

Тема выделяется по переводу строки или автоматом

 

Имя


Регистрация позволит вам редактировать и перемещать ваши сообщения и прикреплять к ним файлы.
 
Символы: á é ó ú ý « »
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7528 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXIX