Resetting and pausing target processor: FAILED и альтернативное программирование ПЗУ Altera типа EPCS

Программирование конфигурационной ПЗУ EPCSИтак танцы с бубном продолжаются. Неплохая штука Flash_programmer, который имеется в Nios но он не срабатывает если в составе .sopc модуля вместо pll применить altpll. При этом выдается одно и то же соощение:
Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Resetting and pausing target processor: FAILED

Любые попытки преодолеть проблему натыкались на это-же собщение. Хотя для информации некоторые моменты:

1. Система Nios должна быть построена так, чтобы не было висящих ножек - все внешние ноги должны быть задействованы.
2. Сигнал reset_n в исходном положении в системе должен быть подтянут к 1 - типа
assign system_reset_n = 1'b1;
...
.reset_n (system_reset_n),
...
Далее для того, чтобы все же запрограммировать конфигурационную ПЗУ типа EPCS16 пришлось воспользоваться программатором Quartus выполнив перед этим преобразования по методике:

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.

Единственное замечание - преобразование необходимо выполнять на базе среды Quartus11, потому как Quartus 9 выполняет преобразование не верно. Преобразованные файлы из .sof и .elf получают неправильное смещение из-за чего проект по включению питания не будет работать. Кроме того преобразователь файлов Quartus9 не позволяет для формирования образа .jic добавлять более одного .hex файла.

Для ускорения процесса можно все необходимые файлы поместить в одну папку изменить им названия и воспользоваться простейшим .sh скриптом. Например так:

1. Создать в корневом каталоге логического диска папку D:/Image
2. Поместить в эту папку .sof и .elf файлы проекта переименовав их, например в soffile.sof и elffile.elf
3. Поместить в папку файлы скриптов sof2flash.jar, elf2flash.jar, nios2-elf-objcopy.exe вытащив их из соответствующих мест установленной программы Quartus11, о чем упоминалось в предыдущем посте о конфигурационной ПЗУ Altera типа EPCS.
4. Войти в консоль Nios, затем выполнить команду перехода в каталог cd D:/Image и выполнить преобразования файлов по методике описанной выше.
5. Выполнить в среде Quartus11 конвертацию файлов в единый образ .jic добавив последовательно два .hex файла
6. Выполнить программирование посредством программатора Quartus.

Обычно такая методика дает положительный результат.

Top.Mail.Ru