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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Не программируется EPCS16
Acvarif
сообщение Sep 3 2014, 13:41
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Еще вчера все прошивалось с помощью flash_programmer от Nios (Q90).
Но внезапно перестало шиться с сообщением
Код
"$SOPC_KIT_NIOS2/bin/nios2-flash-programmer" --epcs --base=0x00002800 --cable='U
SB-Blaster [USB-0]' --instance=0 "epcs_flash_controller_0.flash"
Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Resetting and pausing target processor: FAILED
Leaving target processor paused

По ходу работы скрипта программатора в консоли обратил внимание, что он вместо EPCS16 работает с EPCS128
Код
# Creating .flash file for the FPGA configuration
"$SOPC_KIT_NIOS2/bin/sof2flash" --epcs --input="D:/MyDesignsXp/AsicPrj/AlteraPrj
/QuartusPrj/NiosEthOcmEnisey_Quartus90/NiosEthOcmEnisey.sof" --output="NiosEthOc
mEnisey.flash"
Info: *******************************************************************
Info: Running Quartus II Convert_programming_file
Info: Command: quartus_cpf --no_banner --convert --device=EPCS128 --option=NiosE
thOcmEnisey.opt D:/MyDesignsXp/AsicPrj/AlteraPrj/QuartusPrj/NiosEthOcmEnisey_Qua
rtus90/NiosEthOcmEnisey.sof NiosEthOcmEnisey.pof
Info: Quartus II Convert_programming_file was successful. 0 errors, 0 warnings
    Info: Peak virtual memory: 71 megabytes
    Info: Processing ended: Wed Sep 03 16:04:16 2014

Наверняка в этом случае шиться EPCS16 не будет.
Подскажите пожалуйста в чем тут хитрость? Как заставить flash_programmer работать с EPCS16?
Установки для прошивки тут
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Sep 3 2014, 14:11
Сообщение #2


Лентяй
******

Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843



Ну, тут либо конфигурация слетела (проверяется в Target Conection), либо ява забастовала.
Для проверки перегоните sof и elf в формат flash, потом, с помощью objcopy оба этих файла в hex, затем в квартусе из обоих hex-ов сделайте jic, и попробуйте им прогрузить EPCS'ку.
Если получится, то железо не причем.

Вдогонку - а перед использованием FlashProgrammer'а Вы, часом, не забываете прошивку с ниосом в ПЛИС загрузить?


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
doom13
сообщение Sep 3 2014, 14:13
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Stewart Little @ Sep 3 2014, 17:01) *
Для проверки перегоните sof и elf в формат flash, потом, с помощью objcopy оба этих файла в hex, затем в квартусе из обоих hex-ов сделайте jic, и попробуйте им прогрузить EPCS'ку.

Какой смысл в стольких манипуляциях, почему бы просто не сконвертить sof (вначале естественно скомпилить его с актуальным файлом инициализации памяти Nios 2) в jic? Или так быстрее если железо осталось старым, а менялся только софт для Ниос?
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Sep 3 2014, 15:29
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Цитата(Stewart Little @ Sep 3 2014, 17:11) *
Вдогонку - а перед использованием FlashProgrammer'а Вы, часом, не забываете прошивку с ниосом в ПЛИС загрузить?

Да, через программатор Q9 все грузится. Конечно перед этим выполняю все необходимые преобразования типа: test.sof и test.elf преобразовываю в testsof.flash и testelf.flash. Команды sof2flash.jar --input=test.sof --output=testsof.flash --epcs --verbose и elf2flash.jar --input=test.elf --output=testelf.flash --epcs --after=testsof.flash --verbose
Затем преобразовываю в .hex Команда: nios2-elf-objcopy.exe -I srec -O ihex testelf.flash testelf.hex
Далее формирую .jic
Прикрепленное изображение

Адресация при этом формируется такая:
Прикрепленное изображение

Не уверен правильно-ли я выбираю адресацию .hex (относительную или абсолютную).
Поскольку .hex сформирован из .elf то вроде как адресация должна быть относительной. Но опять-же с какого адреса?
Вобщем если делаю как на картинке то приборчик запускается только наполовину. Тоесть загружается только HARD (.sof) Программа то-ли не загружается во flash то-ли не переходит по вектору запуска.
Все начинает работать только после принудительной загрузки .elf из NIOS. Такое я наблюдал и раньше но так пока и не выяснил причину такой ошибки.

А с flash_programmer так и не понятно. Один раз все загрузил как надо. Кстати он какраз все грузит как надо - все запускается и .sof и .elf.
Второй раз и т. д. перестал шить.
А по поводу прошивки с NIOS я не знал. Можно в двух словал правильную процедуру работы с flash_programer.

Сообщение отредактировал Acvarif - Sep 3 2014, 15:50
Go to the top of the page
 
+Quote Post
doom13
сообщение Sep 3 2014, 17:19
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Acvarif @ Sep 3 2014, 18:29) *
А по поводу прошивки с NIOS я не знал. Можно в двух словал правильную процедуру работы с flash_programer.

Сначала с помощью SOPC Builder (для новых версий Qsys) строите необходимую систему (для работы Nios II Flash Programmer она должна включать ядро EPCS Flash Controller), генерируете её, добавляете в проект в Квартусе, компилируете проект, заливаете прошивку в FPGA. Далее, если в системе присутствует EPCS Flash Controller, можете при помощи Nios II Flash Programmer обновлять содержимое EPCS.
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Sep 3 2014, 17:27
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Цитата(doom13 @ Sep 3 2014, 20:19) *
Сначала с помощью SOPC Builder (для новых версий Qsys) строите необходимую систему (для работы Nios II Flash Programmer она должна включать ядро EPCS Flash Controller), генерируете её, добавляете в проект в Квартусе, компилируете проект, заливаете прошивку в FPGA. Далее, если в системе присутствует EPCS Flash Controller, можете при помощи Nios II Flash Programmer обновлять содержимое EPCS.

Да, это так и делается. Я про нюансы.
1. Нужно-ли стирать EPCS16 перед прошивкой?
2. Нужно-ли перед прошивкой загружать .sof (NIOS + ...) в ПЛИС (питание включено)?
Go to the top of the page
 
+Quote Post
doom13
сообщение Sep 3 2014, 17:42
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Acvarif @ Sep 3 2014, 18:29) *

Можете попробовать другой способ:
1) В меню Target добавляете для для Q9.0 target - memory_init_install.
2) В настройках проекта в Eclipse надо прописать переменную quartus_project_dir с путём, где лежит проект.
3) Скомпилить проект Nios в Eclipse.
4) Далее в меню Target выбираете ранее созданный memory_init_install и жмёте build, в консоли увидите что-то типа результата копирования файла инициализации памяти Ниоса в директорию с проектом Квартуса.
5) Компилируете проект (heх файл инициализации памяти процессора автоматом подхватится и будет уже содержаться в выходном sof).
6) Перегоняете sof в jic с указанием соответствующей конфигурации.
7) jic заливаете в EPCS при помощи SFL.

Цитата(Acvarif @ Sep 3 2014, 20:27) *
Да, это так и делается. Я про нюансы.
1. Нужно-ли стирать EPCS16 перед прошивкой?
2. Нужно-ли перед прошивкой загружать .sof (NIOS + ...) в ПЛИС (питание включено)?

Стирать не нужно (могу ошибаться), оно само должно всё стереть, а потом залить новую прошивку.
При использовании Nios II Flash Programmer необходимо чтобы в FPGA был залит проект с ядром из SOPC (Qsys) EPCS Flash Controller, т.е. если ваша FPGA стартанула с загрузочной флэшки и в системе уже есть EPCS Flash Controller, то можно сразу обновлять прошиву в EPCS. Если плис пустая, то надо сначала залить прошивку железа sof (наличие EPCS Flash Controller-а обязательно), а потом уже обновлять содержимое EPCS.
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Sep 3 2014, 17:58
Сообщение #8


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Цитата
Стирать не нужно (могу ошибаться), оно само должно всё стереть, а потом залить новую прошивку.
При использовании Nios II Flash Programmer необходимо чтобы в FPGA был залит проект с ядром из SOPC (Qsys) EPCS Flash Controller, т.е. если ваша FPGA стартанула с загрузочной флэшки и в системе уже есть EPCS Flash Controller, то можно сразу обновлять прошиву в EPCS. Если плис пустая, то надо сначала залить прошивку железа sof (наличие EPCS Flash Controller-а обязательно), а потом уже обновлять содержимое EPCS

Понятно. Хотя вроде после включения питания в ПЛИС уже должен был быть загружен .sof но попробую его загрузить еще и Квартус программером.
Спасибо. Вариант с инициализацией опробую.

Сообщение отредактировал Acvarif - Sep 3 2014, 17:59
Go to the top of the page
 
+Quote Post
doom13
сообщение Sep 3 2014, 18:09
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Acvarif @ Sep 3 2014, 20:58) *
Вариант с инициализацией опробую.

Можете погуглить по поводу memory_init_install, а то где-то мог ошибиться (давно пользовался, счас Q13, а там совсем всё автоматом делается).
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Sep 3 2014, 20:01
Сообщение #10


Лентяй
******

Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843



Цитата(Acvarif @ Sep 3 2014, 21:27) *
Да, это так и делается. Я про нюансы.
1. Нужно-ли стирать EPCS16 перед прошивкой?
2. Нужно-ли перед прошивкой загружать .sof (NIOS + ...) в ПЛИС (питание включено)?

1. Не нужно - стирание будет инициировано программером автоматически.
2. При использовании FlashProgrammer'а - ОБЯЗАТЕЛЬНО!!! Иначе как же FlashProgrammer до EPCS'ки достучится??? Только через ниосовскую систему!


Цитата(doom13 @ Sep 3 2014, 21:42) *
Можете попробовать другой способ:

Этот способ годится только в том случае, если сегмент кода расположен а On-Chip RAM.
А если во внешней памяти (SRAM, SDRAM - без разницы)? Туда надо как-то исполняемый код поместить. Вот копировщик, живущий в epcs_flash_controller'е этим и занимается.

Цитата(Acvarif @ Sep 3 2014, 19:29) *
Можно в двух словал правильную процедуру работы с flash_programer.

Здесь все подробнейшим образом изложено: Nios II Flash Programmer User Guide


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
doom13
сообщение Sep 3 2014, 20:22
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Stewart Little @ Sep 3 2014, 23:01) *
Этот способ годится только в том случае, если сегмент кода расположен а On-Chip RAM.
А если во внешней памяти (SRAM, SDRAM - без разницы)? Туда надо как-то исполняемый код поместить. Вот копировщик, живущий в epcs_flash_controller'е этим и занимается.

Не думал об этом, как-то всё из On-Chipa всегда работало, выполнение из внешней памяти использовал только при загрузке прошивки для Ниос-а через JTAG.
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Sep 4 2014, 09:40
Сообщение #12


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Мытарства продолжаются.

Попытался загрузить похожий (старый) проект - все грузится без проблем.
Код
# Programming flash with the FPGA configuration
"$SOPC_KIT_NIOS2/bin/nios2-flash-programmer" --epcs --base=0x00002000 --cable='U
SB-Blaster [USB-1]' --instance=0 "NiosEthOcmNeptun.flash"
Using cable "USB-Blaster [USB-1]", device 1, instance 0x00
Resetting and pausing target processor: OK

Попытка загрузить новый:
Код
Programming flash with the FPGA configuration
"$SOPC_KIT_NIOS2/bin/nios2-flash-programmer" --epcs --base=0x00002000 --cable='U
SB-Blaster [USB-1]' --instance=0 "NiosEthOcmEnisey.flash"
Using cable "USB-Blaster [USB-1]", device 1, instance 0x00
Resetting and pausing target processor: FAILED

Чудеса какие-то. Получается что проц не сбрасывается.
Хотя .sopc в обеих проектах очень похожи - даже процы полностью одинаковые.
В какую сторону еще можно копать?
Go to the top of the page
 
+Quote Post
doom13
сообщение Sep 4 2014, 10:46
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Сама прошивка (sof) залитая в FPGA до использования Nios II Flash Programmer в обоих случаях одинакова?
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Sep 4 2014, 11:17
Сообщение #14


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Цитата(doom13 @ Sep 4 2014, 13:46) *
Сама прошивка (sof) залитая в FPGA до использования Nios II Flash Programmer в обоих случаях одинакова?

Нет. .sof разные. Но очень похожие. Там и там проц одинаковый. Даже адреса прерываний одинаковые. Вся набивка одинаковая. Разные только присоединенные внешние модули которые работают через SGDMA. Вобщем к сбросу и не имеют никакого отношения. Естественно .elf тоже разные.

Сообщение отредактировал Acvarif - Sep 4 2014, 11:17
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Sep 4 2014, 12:27
Сообщение #15


Лентяй
******

Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843



Цитата(Acvarif @ Sep 4 2014, 13:40) *
В какую сторону еще можно копать?

Скорее всего "задача на внимание" sm.gif
Bsp аппаратной части соответствует?
Сравните настройки Target Connection в том и в другом случае.

Вы пробовали загрузить jic, полученный из sof'а и elf'а?
С адресацией hex'ов при создании результирующего jic'а разобрались?


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post

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

 


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


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