реклама на сайте
подробности

 
 
> MPLab - несовместимость версий?
FPGA
сообщение Sep 20 2015, 20:09
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 341
Регистрация: 6-12-04
Пользователь №: 1 352



Доброго времени суток!
Обращаюсь ко всем, имеющим опыт работы с версиями MPLab IDE разных лет. Проблема такая. Имеется прошивка для PIC16F877, разработанная в 2002 году. Код был написан на C с небольшими вставками на ассемблере, среда разработки MPLab v5.20 (или что-то около) в связке с компилятором HI-TECC PICC (версию назвать сейчас трудно, но что-то около v8.86). Все прекрасно прошивалось в течение многих лет, устанавливались свежие версии MPLab без каких-либо проблем, и все продолжало нормально прошиваться. Потом прибор прекратили выпускать и долгое время не трогали, при этом продолжая освежать на рабочем компе MPLab по мере необходимости. Недавно нам заказали новую партию приборов, и тут оказалось, что прошитые с использованием оригинального файла контроллеры работать отказываются. Начали разбираться. Проверили контрольную сумму hex-файла в архиве и на мастер-диске с помощью MPLab v8.12, в данное время установленной на производственном компе. Оба результата были одинаковыми, но не совпали с ожидаемой суммой. После этого прочитали прошивку исправного прибора с помощью той же v8.12, значение контрольной суммы совпало с ожидаемым. Казалось бы, это проблема архивных файлов, но дело в том, что при прошивании процессора специальная утилита подсчитывает CRC прошивки и добавляет ее значение в записываемый дамп, чтобы процессор мог проверить прошивку во время самотестирования. Так вот CRC всех трех файлов оказалась одинаковой и в точности той, что ожидалась. После этого нашли очень старый комп с древней версией MPLab и прошили несколько контроллеров файлом из архива. Все прошло идеально. Но при использовании v8.12 заработал только контроллер, прошитый файлом, слитым с рабочего прибора. Также оказалось, что размер hex-файла, слитого с рабочего прибора версией 8.12, отличается от размера архивных копий. В итоге был сделан вывод, что файл, созданный ранней версией MPLab, трактуется как-то иначе более свежей версией.

Вопрос - встречался ли кто-нибудь с подобной проблемой, что старые hex-файлы при заливке более свежей версией MPLab перестают работать на железе, с которым раньше работали? Возможно, Microchip изменил метод подсчета контрольной суммы или что-то еще, в результате чего более свежие версии MPLab иначе трактуют старые hex-файлы. Если что-то подобное имело место, может, у кого есть официальные микрочиповские документы или апноты на этот счет, подтверждающие данное предположение. Перекомпилировать проект под более свежей версией MPLab не вариант, т.к. потребуется дорогостоящая пересертификация, чего хотелось бы избежать. Старый же комп с древней версией MPLab более не доступен, так что использовать его тоже не вариант. Похоже, что надо откатить назад версию MPLab, но хотелось бы не откатываться дальше, чем нужно, т.к. на компе программируют и другие, более свежие, MPLab проекты. Не хотелось бы тупо пробовать разные версии, пока не заработает. В общем, подскажите, друзья, кто что знает.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
FPGA
сообщение Sep 22 2015, 01:18
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 341
Регистрация: 6-12-04
Пользователь №: 1 352



Во-первых, спасибо всем откликнувшимся.
Цитата(Redguy @ Sep 21 2015, 10:29) *
Добрый день!
Самому мне не приходилось ни разу заниматься сверкой контрольных сумм, независимо от версий всегда заливалось на ура. Но при этом, я регулярно практикую заливку готового hex на партию устройств не с помощью MPLab, а с помощью спец.программ идущих с программатором. Например, у меня PicKit2 и PicKit3, для них есть соответствующие программы PicKit2.exe и PicKit3.exe. Они весят меньше, ИМХО с ними проще и быстрее.
Что бы я делал в вашей ситуации:
1. Слил бы самую последнюю версию MPLAB IDE (вкладка Downloads Archive) . На текущий момент 8.92. Версии 8.12 на офф.сайте я не увидел. Если это был баг среды, то скорее всего они его исправили.
2. Вариант попробовать MPLAB X. Он очень прожорливый и неповоротный для "медленных" компов, но как вариант тоже сгодится.
3. С MPLabX в комплекте идет программа MPLAB IPE - универсальная программа заливки hex для всех (до конца неуверен, что для всех, не проверял) программаторов и чипов.

Честно говоря, у меня есть серьезные сомнения, что это баг. Почему-то мне кажется, что это совершенно осознанная смена "чего-то там" Microchip-ом. Почему так думаю? Да потому, что они в прошлом меняли форматы, в частности, в очень старых версиях, включая и 5.20, файл проекта имел расширение .pjt, а в более свежих - уже .mcp, причем более свежие версии старый формат не распознают. И кстати, если память не изменяет, то где-то начиная с v8.40-какой-то они снова что-то меняли, так что велик шанс получить новые проблемы, установив последнюю версию 8.92. Что же касается MPLABX, то мы предпочитаем старый и надежный ICD2 более новому и кривому ICD3, а MPLABX поддерживает только последний, если не ошибаюсь. Есть еще где-то в закромах PM3, но его сначала еще найти надо. В общем, похоже, что таки придется методом тыка, хоть и не хотелось. Если больше ничего не посоветуют, то будем пробовать ваш подход, ну и откатываться назад тоже попробуем. Еще раз спасибо.

Цитата(One @ Sep 21 2015, 10:41) *
а что, Ваш программатор только из под IDE работает?

У нас основной программатор - это ICD2. Да, он из-под IDE работает. Есть еще где-то PM3, он вроде бы поновее, и он умеет кроме загрузки файла средой также считывать прошивку с образцового чипа или с карты памяти, НО!!! проблема снова в том, что любой из этих методов требует либо использования среды, а она явно калечит файл, либо создания образцового чипа обходными путями, а это с точки зрения сертификационных служб является основанием для пересертификации. Можно, конечно, слить исходный hex на карту памяти средствами винды и воткнуть эту карточку в PM3, но не факт, что для сертификаторов это прокатит, т.к. помимо всего прочего, файл заливается с карточки, а не прямо из архива. Вот и получается, что нужно обязательно найти способ работать с оригинальным hex-ом. Но в любом случае спасибо за Ваше мнение.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 14:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.01355 секунд с 7
ELECTRONIX ©2004-2016