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

 
 
> Не программируется 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
 
Start new topic
Ответов
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
Acvarif
сообщение Sep 3 2014, 15:29
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 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
Сообщение #4


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

Группа: Свой
Сообщений: 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
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 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
Stewart Little
сообщение Sep 3 2014, 20:01
Сообщение #6


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

Группа: Свой
Сообщений: 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
Сообщение #7


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

Группа: Свой
Сообщений: 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
Сообщение #8


Знающий
****

Группа: Участник
Сообщений: 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
Stewart Little
сообщение Sep 4 2014, 12:27
Сообщение #9


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

Группа: Свой
Сообщений: 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
Acvarif
сообщение Sep 4 2014, 12:47
Сообщение #10


Знающий
****

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Sep 4 2014, 20:09
Сообщение #11


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

Группа: Свой
Сообщений: 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?


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


Знающий
****

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Sep 9 2014, 05:44
Сообщение #13


Знающий
****

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


RSS Текстовая версия Сейчас: 29th July 2025 - 19:03
Рейтинг@Mail.ru


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