|
Не программируется 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, 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'а разобрались?
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Sep 4 2014, 12:47
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(Stewart Little @ Sep 4 2014, 15:27)  Вы пробовали загрузить jic, полученный из sof'а и elf'а? С адресацией hex'ов при создании результирующего jic'а разобрались? Да. Такое пробовал. Прошивается нормально. Но не работает. По включению питания работает только то, что соответствует .sof То что .elf не работает. Проверяю путем принудительной загрузки .elf - все начинает работать. По поводу адресации - выше картинка. В адресации .hex который делается из .elf не уверен...
Сообщение отредактировал Acvarif - Sep 4 2014, 12:47
|
|
|
|
|
Sep 4 2014, 20:09
|

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

|
Цитата(Acvarif @ Sep 4 2014, 16:47)  По поводу адресации - выше картинка. В адресации .hex который делается из .elf не уверен... jic нужно делать не из sof'a и hex'a, а из двух hex'ов (первый hex надо сделать из sof'а а второй - из elf'а). Цитата(Acvarif @ Sep 4 2014, 16:47)  Да. Такое пробовал. Прошивается нормально. Но не работает. По включению питания работает только то, что соответствует .sof То что .elf не работает. Проверяю путем принудительной загрузки .elf - все начинает работать. Это значит, что что-то не правильно. Куда указывает вектор сброса? Что в настройках bsp?
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Sep 5 2014, 09:23
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(Stewart Little @ Sep 4 2014, 23:09)  jic нужно делать не из sof'a и hex'a, а из двух hex'ов (первый hex надо сделать из sof'а а второй - из elf'а).
Это значит, что что-то не правильно. Куда указывает вектор сброса? Что в настройках bsp? Пробовал делать по разному. 1. из sof'a и hex'a 2. из двух hex'ов - тпа так: Цитата The method used to create a .jic file with a Nios® II hardware and software image is as follows.
1.Create a flash file for the hardware and software image
sof2flash --input=<hwimage>.sof --output=hwimage.flash --epcs --verbose elf2flash --input=<elf file>.elf --output=swimage.flash --epcs --after=hwimage.flash --verbose
Note: When creating the software flash image, there is no need to add a boot srec (this is located in the EPCS Controller), the --after option ensures the software image starts immediately after the hardware image.
2.Convert the flash images into Hex files
nios2-elf-objcopy -I srec -O ihex hwimage.flash hwimage.hex nios2-elf-objcopy -I srec -O ihex swimage.flash swimage.hex
3.When creating your jic file using Quartus® II Convert Programming File tool, add the Flash Loader and both hex files with absolute addressing option selected.
Note: You do not need to add the .sof file to the jic image. This is because you created a hardware hex image. Using the hardware hex image ensures the software hex image is at the proper offset in the EPCS. Причем второй способ проходит только в Quartus 11.0, в Quartus90 в преобразователе деактивируется кнопка добавления .hex после того как добавлен один .hex (второй .hex добавить невозможно) 1. По первому способу работает только ПЛИС (.sof) программа Nios не запускается. 2. По второму способу вообще ничего не работает. Вектор сброса в процессоре поставлен на epcs_flash_controller_0
Установки библиотеки на картинке
Сообщение отредактировал Acvarif - Sep 5 2014, 09:26
|
|
|
|
|
Sep 9 2014, 05:44
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Сделал 2 hex из .sof и .elf Получается интересная картина - смещение на один байт .sof заканчивается по адресу 8A6E , а .elf начинается с адреса 8A6E, хотя, как продолжение должен начинаться с адреса 8A6F
Что не так? Преобразовывал из .flash в hex файлом nios2-elf-objcopy.exe от Q11 От Q9 такой файл почему-то вообще не работает. Хотя flash_programmer Q9 работает нормально. Проблема только в отсутствии сброса проца в начале программирования: Код #!/bin/sh # # This file was automatically generated by the Nios II IDE Flash Programmer. # # It will be overwritten when the flash programmer options change. #
cd D:/MyDesignsXp/AsicPrj/AlteraPrj/QuartusPrj/NiosEthOcmEnisey_Quartus90/NiosEt hOcmEnisey/Release
# Creating .flash file for the FPGA configuration "$SOPC_KIT_NIOS2/bin/sof2flash" --epcs --input="D:/MyDesignsXp/AsicPrj/AlteraPrj /QuartusPrj/NiosEthOcmEnisey_Quartus90/NiosEthOcmEniseyTop.sof" --output="NiosEt hOcmEniseyTop.flash" Info: ******************************************************************* Info: Running Quartus II Convert_programming_file Info: Command: quartus_cpf --no_banner --convert --device=EPCS128 --option=NiosE thOcmEniseyTop.opt D:/MyDesignsXp/AsicPrj/AlteraPrj/QuartusPrj/NiosEthOcmEnisey_ Quartus90/NiosEthOcmEniseyTop.sof NiosEthOcmEniseyTop.pof Info: Quartus II Convert_programming_file was successful. 0 errors, 0 warnings Info: Peak virtual memory: 71 megabytes Info: Processing ended: Tue Sep 09 08:42:01 2014 Info: Elapsed time: 00:00:02 Info: Total CPU time (on all processors): 00:00:01 Info: ******************************************************************* Info: Running Quartus II Convert_programming_file Info: Command: quartus_cpf --no_banner --convert NiosEthOcmEniseyTop.pof NiosEth OcmEniseyTop.rpd Info: Quartus II Convert_programming_file was successful. 0 errors, 0 warnings Info: Peak virtual memory: 67 megabytes Info: Processing ended: Tue Sep 09 08:42:03 2014 Info: Elapsed time: 00:00:02 Info: Total CPU time (on all processors): 00:00:01
# Programming flash with the FPGA configuration "$SOPC_KIT_NIOS2/bin/nios2-flash-programmer" --epcs --base=0x00002000 --device=1 --instance=0 "NiosEthOcmEniseyTop.flash" Using cable "USB-Blaster [USB-0]", device 1, instance 0x00 Resetting and pausing target processor: FAILED Leaving target processor paused
# Creating .flash file for the project "$SOPC_KIT_NIOS2/bin/elf2flash" --epcs --after="NiosEthOcmEniseyTop.flash" --inp ut="NiosEthOcmEnisey.elf" --output="epcs_flash_controller_0.flash"
# Programming flash with the project "$SOPC_KIT_NIOS2/bin/nios2-flash-programmer" --epcs --base=0x00002000 --device=1 --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
# Creating .flash file for the datafile "$SOPC_KIT_NIOS2/bin/bin2flash" --base=0x00002000 --location=0x000AF6E7 --input= "NiosEthOcmEnisey.elf" --output="NiosEthOcmEnisey.flash"
# Programming flash with the datafile "$SOPC_KIT_NIOS2/bin/nios2-flash-programmer" --epcs --base=0x00002000 --device=1 --instance=0 "NiosEthOcmEnisey.flash" Using cable "USB-Blaster [USB-0]", device 1, instance 0x00 Resetting and pausing target processor: FAILED Leaving target processor paused
Сообщение отредактировал Acvarif - Sep 9 2014, 05:45
|
|
|
|
Сообщений в этой теме
Acvarif Не программируется EPCS16 Sep 3 2014, 13:41 doom13 Цитата(Stewart Little @ Sep 3 2014, 17:01... Sep 3 2014, 14:13            Acvarif Проблема flash_programmer не решилась, вернее реши... Sep 18 2014, 18:03  doom13 Цитата(Acvarif @ Sep 3 2014, 18:29)
Може... Sep 3 2014, 17:42   Acvarif ЦитатаСтирать не нужно (могу ошибаться), оно само ... Sep 3 2014, 17:58    doom13 Цитата(Acvarif @ Sep 3 2014, 20:58) Вариа... Sep 3 2014, 18:09 doom13 Сама прошивка (sof) залитая в FPGA до использовани... Sep 4 2014, 10:46 Acvarif Цитата(doom13 @ Sep 4 2014, 13:46) Сама п... Sep 4 2014, 11:17
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|