Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема в программировании SPI-флеш
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Art55555
Имеется связка ПЛИС Artix 7 и SPI флеш N25Q256.

Делаем всё так, как описано в XAPP 1081.
1) Создаём bit-файл.
2) В IMPACT создаём MCS файл. Настройки - MultiBoot для прошивки SPI флэшки.
3) Перловским скриптом создаём Initial и Update MCS файлы, т.е. Golden и Update Bitstream.
4) Прошиваем флешку из IMPACT - успешно. Флешка грузит плисину после включения.

Следующая задача прошить Update - область флешки средствами ПЛИС. Для этого получаем с компа файл прошивки (Update.mcs) и пытаемся его зашить в SPI-флешку с помощью модулей, приложенных к XAPP 1081 (SpiFlashProgrammer.vhd+SpiSerDes.vhd).

Вопросы:
1) При работе перл - скрипта, то он выдаёт: Update_Start_address=x"00200000" и Update_End_address=x"00400000" , что не сходится с реальными размером MCS файла (5,5 Мб) . Реально в это адресное пространство занимает около 2 Мб.
2) MCS файл в ASCII формате. В каком виде его отправлять? Нужно ли что-то модифицировать в нём?
2) Надо ли вообще делать для этого MCS или нужно отправлять BIT или BIN?
3) Где и как просчитвать адреса для областей Golden и Update Areas?
4) Что делать с CRC? Нужно ли его считать самостоятельно или куда-нибудь вписывать?


Есть ли какие-нибудь примеры, где описаны подобные манипуляции?
maxics

Присоединяюсь к вопросу. Интересует формат mcs файла для отправки его в фифо SPI. На зарубежных форумах где-то читал, что нужно модернизировать mcs. Обрезать адрес и CRC каждой строки. Так-ли это?
ivanoffer
Цитата(maxics @ Oct 4 2016, 17:03) *
Присоединяюсь к вопросу. Интересует формат mcs файла для отправки его в фифо SPI. На зарубежных форумах где-то читал, что нужно модернизировать mcs. Обрезать адрес и CRC каждой строки. Так-ли это?



Воспользуйтесь утилитой Vivado 2016.2 Tools->Generate Memory Configuration File для создания файла конфигурации загрузочной SPI.
Наглядно и интуитивно понятно создание файла инициализации.
Golikov A.
Цитата(maxics @ Oct 4 2016, 17:03) *
Присоединяюсь к вопросу. Интересует формат mcs файла для отправки его в фифо SPI. На зарубежных форумах где-то читал, что нужно модернизировать mcs. Обрезать адрес и CRC каждой строки. Так-ли это?


во флэш в итоге лежит только прошивка, то что получается в bit файле за вычетом спец заголовка или то что в bin файле (-g Binary) для битгена.
Для мультиобразов надо не забывать ставить -g next_config_register_write:Disable
Надо не забывать включать перезагрузку по ошибке CRC

mcs имеет так называемый intel hex формат, про него можно почитать в википедии. Там кроме самих данных записаных аски символами добавлены в каждой строке смещение адреса и контрольная сумма строки, это все естественно отрезается при прошивке. Более того там есть команды переключения адреса, так как смещение там 16 битное, то время от времени попадаются команды переключения страниц, так же есть какая то команда начала и команда конца. Это все есть в вики если интересно.
Для разработчика удаленной прошивки это наименее удобный формат, куча накладных расходов и раздувания информации. Мало того что каждый байт представлен 2, так еще из аски в бинарь переводить надо, вырезать команды и т.д....

используйте для передачи и записи бинарь, и допишите свой загрузчик флешки это быстро и просто.

П.С. я теперь редко тут бываю, пишите в личку если какие вопросы, удачи wink.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.