wolfman
Jun 18 2018, 19:12
Приветствую всех, две головы хорошо, а помощь сообщества лучше.
Итак понадобилось нашему заказчику поиметь контроль того, что же записано в загрузочную флешку ПЛИС. Подцепили альтеровскую мегафункцию и опа, ни jic(что понятно), ни pof, ни даже sof-файлы не совпадают с тем, что оказывается в загрузочной флешке.
Отличия имеем в заголовке файла, затем идёт блок идентичный тому, что находится в pof(sof) файлах, затем какая-то ещё информаци и в конце контрольная сумма.
Пробовали генерировать и прошивать различные виды файлов, результат один, куча левой информации.
Прикупили программатор на FTDI от проекта Марсоход и использовали их софт для прошивки по Active Serial и о чудо, файл зашитый и файл которым зашивали совпадают полностью без левых вставок. Проверяли на Картусах от 15.1 до 17.1.
Никто не сталкивался с таким?
Тоже сталкивался с этим при записи и чтении прошивки файлы отличались заголовками. Даже не стал заморачиваться видно-же что квартус просто формирует новый файл со считанной прошивкой, соответственно и заголовок другой. При проверке прошивки всё совпадало и работало как положено.
wolfman
Jun 19 2018, 16:30
Цитата(inco @ Jun 19 2018, 14:45)

Тоже сталкивался с этим при записи и чтении прошивки файлы отличались заголовками. Даже не стал заморачиваться видно-же что квартус просто формирует новый файл со считанной прошивкой, соответственно и заголовок другой. При проверке прошивки всё совпадало и работало как положено.
Отличия не только в заголовке и CRC, есть непонятные данные в середине файла.
Marat Zuev
Jun 19 2018, 19:56
Цитата(wolfman @ Jun 19 2018, 16:30)

Отличия не только в заголовке и CRC, есть непонятные данные в середине файла.
На родном форуме никто таким вопросом не озадачивался?
Denisnovel
Jun 19 2018, 20:39
При конвертации файла вам нужно поставить галочку Create config data RPD. Это будет бинарный образ фрешки.
wolfman
Jun 20 2018, 07:35
Цитата(Denisnovel @ Jun 20 2018, 07:09)

При конвертации файла вам нужно поставить галочку Create config data RPD. Это будет бинарный образ фрешки.
И получаем тоже самое, через сторонний софт и сторонний программатор всё чисто.
Alex11
Jun 20 2018, 17:52
Я так и не понял, что именно требуется. Если нужен образ того, что будет зашито в ПЗУ - можно достать соответствующий раздел из pof-файла, там несложная разборка. Если проконтролировать правильность - это quartus и так делает.
wolfman
Jun 21 2018, 11:18
Цитата(Alex11 @ Jun 21 2018, 04:22)

Я так и не понял, что именно требуется. Если нужен образ того, что будет зашито в ПЗУ - можно достать соответствующий раздел из pof-файла, там несложная разборка. Если проконтролировать правильность - это quartus и так делает.
Нужно периодически вычитывать данные из ПЗУ и сравнивать с файлом, например pof, в общем случае это не возможно, т.к. при прошивке Квартус и/или программатор кидает свои данные, отсечь можно только заголовок и CRC, остальные данные случайным образом гуляют по файлу и просто так их не отбросить.
Alex11
Jun 22 2018, 22:41
Программатор Quartus'а не пишет ничего лишнего, только то, что лежит в соответствующем разделе pof'а. Если сравнивать две последовательные одинаковые трансляции, то они могут различаться, но если смотреть на прошивку из одного pof'а - все совпадает, опять же, контроль бы не работал. Считанный программатором pof может не совпадать с исходным, но только в части заголовка, хвоста и time stamp.
wolfman
Jun 23 2018, 20:12
Блин, вроде бы по русски пишу.
Ещё раз, берём программатор квартуса, чистим загрузочную микросхему, зашиваем pof. Вычитываем квартусом, вычитываем альтеровской мегафункцией. Результат одинаковый, разница в заголовке и CRC. Далее без отдельной очистки записываем тот же самый pof и вуаля, что квартусом, что через мегафункцию, вычитываем данные, которых нет в pof-файле и которые находятся в середине.
Далее берём сторонний программатор и сторонее ПО для прошивки, подсовываем тот же самый pof-файл, зашиваем, вычитываем через мегафункцию и через стороннее ПО и вуаля, вычитанное полностью совпадает с pof-файлом. Аналогично с другими форматами.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.