|
Не программируется EPCS16 |
|
|
|
Sep 3 2014, 13:41
|
Знающий
   
Группа: Участник
Сообщений: 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? Установки для прошивки тут
|
|
|
|
|
Sep 3 2014, 14:11
|

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

|
Ну, тут либо конфигурация слетела (проверяется в Target Conection), либо ява забастовала. Для проверки перегоните sof и elf в формат flash, потом, с помощью objcopy оба этих файла в hex, затем в квартусе из обоих hex-ов сделайте jic, и попробуйте им прогрузить EPCS'ку. Если получится, то железо не причем.
Вдогонку - а перед использованием FlashProgrammer'а Вы, часом, не забываете прошивку с ниосом в ПЛИС загрузить?
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Sep 3 2014, 15:29
|
Знающий
   
Группа: Участник
Сообщений: 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
|
|
|
|
|
Sep 3 2014, 17:27
|
Знающий
   
Группа: Участник
Сообщений: 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 + ...) в ПЛИС (питание включено)?
|
|
|
|
|
Sep 3 2014, 17:42
|
Профессионал
    
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Sep 3 2014, 17:58
|
Знающий
   
Группа: Участник
Сообщений: 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
|
|
|
|
|
Sep 3 2014, 20:01
|

Лентяй
     
Группа: Свой
Сообщений: 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
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Sep 4 2014, 09:40
|
Знающий
   
Группа: Участник
Сообщений: 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 в обеих проектах очень похожи - даже процы полностью одинаковые. В какую сторону еще можно копать?
|
|
|
|
|
Sep 4 2014, 12:27
|

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

|
Цитата(Acvarif @ Sep 4 2014, 13:40)  В какую сторону еще можно копать? Скорее всего "задача на внимание"  Bsp аппаратной части соответствует? Сравните настройки Target Connection в том и в другом случае. Вы пробовали загрузить jic, полученный из sof'а и elf'а? С адресацией hex'ов при создании результирующего jic'а разобрались?
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|