Перейти к содержанию
    

Nios flash programer

Есть проект, reset vector для ниоса указан на on-chip память небольшого объема. Генерим из sof jic, зашиваем, все работает.

 

Теперь надо сделать так, чтобы в EPCS кроме sof, лежал еще и некий hex большого объема (1 мбайт).

 

Для этого добавил epcs controller в систему, обращаюсь к нему через Nios flash programer. sof шьет без проблем, а когда пытаюсь прицепить кроме софа еще и хекс, при прошивке выдает ошибку:

 

Error: Error code: 8 for command: nios2-flash-programmer "D:/tdesign/Projects/NSCI/altera/MIK1/MIK1/flash/img0_epcs_flash_controller_0.flash" --base=0x20011000 --epcs --accept-bad-sysid --device=1 --instance=0 '--cable=USB-Blaster on localhost [uSB-0]' --program --verbose

 

Что ему не нравится, как правильно сделать, да еще чтобы адрес, куда зальется hex, был известен?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть проект, reset vector для ниоса указан на on-chip память небольшого объема. Генерим из sof jic, зашиваем, все работает.

Теперь надо сделать так, чтобы в EPCS кроме sof, лежал еще и некий hex большого объема (1 мбайт).

Для этого добавил epcs controller в систему, обращаюсь к нему через Nios flash programer. sof шьет без проблем, а когда пытаюсь прицепить кроме софа еще и хекс, при прошивке выдает ошибку:

Что ему не нравится, как правильно сделать, да еще чтобы адрес, куда зальется hex, был известен?

Скорее всего, у Вас там конфликт адресов.

Вот этот hex, который должен жить вслед за sof'ом - Вы его как получали?

 

Попробуйте следующую последовательность:

1. sof2flash'ем перегнать sof во flash

2. с помощью nios2-elf-objcopy перегнать полученный flash в hex

3. в квартусе, в Convert Programming Files из двух hex'ов - полученного из sof'а и Вашего большого файла - сделать один jic (там надо правильно задать с режим адресации, и, кстати, можно управлять адресом начала второго hex'а)

4. полученный jic прошить в конфигуратор.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ошибка была в том, что при конвертировании в jic, он понимает только intel hex. Сконвертировал bmp в intel hex с помощь hex-редактора, все сконвертировалось и зашилось.

Ниос флеш програмер больше не проверял, возможно та же фигня.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день.

Имеется отладка с 5 циклоном, квартус 15.1.

Собрал простой проект с NIOS II, написал программу в eclipse. Если запустить программу или отладку из эклипса то все хорошо, работает. Встал вопрос как зашить elf. В данный момент кидаю его рядом с sof, пересобираю проект fpga и загружаю, но хотелось бы использовать flash programmer. В конфигурацию ядра в Qsys добавил корку Legacy EPCS/EPCQx1 Flash Controller, System ID Peripheral. В flash programmer систему видит, но после прошивки не стартует даже fpga. Есть подозрение что неправильно смещение наастраиваю, но тогда, если я правильно понял, если я зашивал бы просто sof с нулевым смещением все должно было бы работать, но не работает.

 

Встал вопрос как зашить elf. В данный момент кидаю его рядом с sof, пересобираю проект fpga и загружаю

Попутал. Генерирую хекс через build/mem_init_generate

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем, пока только 2 пути загруки получились. Вектор сброса процессора установил в On-Chip Memory.

1) Инициализация памяти предварительно сгенерированным hex'ом через build/mem_init_generate

2) Через sof2flash и elf2flash получаем flash файл, потом перегоняем в хекс через nios2-elf-objcopy перегоняю в hex, собираю конвертирую sof+hex в .jiс прошивку и заливаю.

 

через flash programmer пока получается только мертвая система. Вектор сброса пробовал на Legacy EPCS/EPCQx1 Flash Controller ставить, не помогло.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

через flash programmer пока получается только мертвая система. Вектор сброса пробовал на Legacy EPCS/EPCQx1 Flash Controller ставить, не помогло.

Кроме этого нужно еще настройки bsp подкручивать (Allow code at reset и т.п.)

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кроме этого нужно еще настройки bsp подкручивать (Allow code at reset и т.п.)

Спасибо за ответ. А подробнее можно? Может почитать где подскажите? галка Allow code at reset установлена.

Там такое чудо получается, что после прошивки не стартует не только ядро nios, но и вся система, даже та часть что отдельно от ядра работает. Такое чувство что что-то пишет не по тем адресам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за ответ. А подробнее можно? Может почитать где подскажите?
Настоятельно рекомендую досконально изучить процесс старта (booting) Nios II. Начать можно хот вот с этого: AN 736: Nios II Processor Booting From Altera Serial Flash

 

галка Allow code at reset установлена.
Если вектор сброса указывает на контроллер EPCS, то она должна быть сброшена.

В контроллере EPCS есть свое маленькое ПЗУ, где живет копировщик, который переписывает исполняемый код (приложение) из EPCS в ту память, которая отведена под сегмент кода (секцию .text). Этот копировщик запускается после сброса, и после тог, как отработает, передает управление в загруженное в память приложение.

А если взводится Allow code at reset, то это сообщает bsp, что по сбросу сразу должен выполняться код приложения. Отсюда конфликт.

 

Там такое чудо получается, что после прошивки не стартует не только ядро nios, но и вся система, даже та часть что отдельно от ядра работает. Такое чувство что что-то пишет не по тем адресам.
Когда создаете flash-файл, то сперва надо указывать sof (с нулевым смещением), а зтем elf (сразу за sof'ом).

 

Еще помню, в каких-то версиях во FlashProgrammer имелся глюк с формированием flash-файлов. Там приходилось сперва все преобразовывать в hex, затем два hex'а в jic (в квартусе), и jic уже прошивать в EPCS'ку. На форуме я об этом писал, воспользуйтесь поиском.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Начать можно хот вот с этого: AN 736: Nios II Processor Booting From Altera Serial Flash

 

Спасибо! Это как раз то чего мне не хватаало для понимания.

 

Когда создаете flash-файл, то сперва надо указывать sof (с нулевым смещением), а зтем elf (сразу за sof'ом).

Еще помню, в каких-то версиях во FlashProgrammer имелся глюк с формированием flash-файлов. Там приходилось сперва все преобразовывать в hex, затем два hex'а в jic (в квартусе), и jic уже прошивать в EPCS'ку. На форуме я об этом писал, воспользуйтесь поиском.

 

Формирует flash он видимо правильно, так как я пробовал их конвертировать в hex и потом в jic, все запускалось.(reset vector был в ocram). И руками пробовал sof во flash, потом elf туда же, и далее как в преддыдущем случае, все прокатывает. Видимо записывает криво, там я накосячил.

 

В апноуте испольлзуется корка Altera Serial Flash Controller, я использовал Legacy EPCS/EPCQx1 Flash Controller. Заметил что у первой адресное пространство равно размеру флэш, а у второй только 0x7FF почему-то. Видимо я применил не ту корку либо не понимаю как она работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати вопрос к Stewart Little. В этом документе на Figure 3 сказано:

Note: The maximum input clock for Altera Serial Flash Controller IP is 25 MHz. The input clock
must not exceed this maximum value.

 

Но этот же клок заходит и в процессор. Означает ли это что с этим контроллером частота процессора тоже будет ограничена 25МГц?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати вопрос к Stewart Little. В этом документе на Figure 3 сказано:

Note: The maximum input clock for Altera Serial Flash Controller IP is 25 MHz. The input clock
must not exceed this maximum value.

Но этот же клок заходит и в процессор. Означает ли это что с этим контроллером частота процессора тоже будет ограничена 25МГц?

Возник тот же вопрос. Предпологаю что можно использовать Avalon-MM Clock Crossing Bridge, тогда будет возможность согласовать частоты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день, есть проблема с лицензией для перегона в jik файл, может кто помочь

Я собираю систему:

на кристале Cyclone v gx

использую для этого nios ii

qaurtus 13.1 web edition

Может кто знает какой quartus надо использовать с crack или есть другие пути решения этой проблемы

Заранее большое спасибо

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...