Jump to content

    
Sign in to follow this  

Recommended Posts

Есть проект, 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, был известен?

 

 

Share this post


Link to post
Share on other sites
Есть проект, 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 прошить в конфигуратор.

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Добрый день.

Имеется отладка с 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

Share this post


Link to post
Share on other sites

В общем, пока только 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 ставить, не помогло.

Share this post


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

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

 

 

Share this post


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

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

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

Share this post


Link to post
Share on other sites
Спасибо за ответ. А подробнее можно? Может почитать где подскажите?
Настоятельно рекомендую досконально изучить процесс старта (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'ку. На форуме я об этом писал, воспользуйтесь поиском.

Share this post


Link to post
Share on other sites
Начать можно хот вот с этого: 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 почему-то. Видимо я применил не ту корку либо не понимаю как она работает.

Share this post


Link to post
Share on other sites

Кстати вопрос к 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МГц?

Share this post


Link to post
Share on other sites
Кстати вопрос к 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, тогда будет возможность согласовать частоты.

Share this post


Link to post
Share on other sites

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

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

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

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

qaurtus 13.1 web edition

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

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

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this