Полная версия этой страницы:
Nios II Software
vadimuzzz
May 19 2010, 23:00
Цитата(KriGLer @ May 20 2010, 00:53)

Да, через него
тогда давайте логи программера. какой версии квартус?
KriGLer
May 20 2010, 05:06
если это то:
Код
#!/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:/altera/BVK/software/bvk222/Debug
# Creating .flash file for the project
"$SOPC_KIT_NIOS2/bin/elf2flash" --base=0x02000000 --end=0x23fffff --reset=0x2000
000 --input="bvk222.elf" --output="cfi_flash_0.flash" --boot="D:/altera/90/ip/al
tera/nios2_ip/altera_nios2/boot_loader_cfi.srec"
# Programming flash with the project
"$SOPC_KIT_NIOS2/bin/nios2-flash-programmer" --base=0x02000000 --cable='USB-Blas
ter [USB-0]' "cfi_flash_0.flash"
Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Resetting and pausing target processor: OK
: Checksumming existing contents
00000000 : Reading existing contents
00002000 : Reading existing contents
00004000 : Reading existing contents
00006000 : Reading existing contents
00008000 : Reading existing contents
0000A000 : Reading existing contents
Checksummed/read 11kB in 0.3s
00000000 ( 0%): Erasing
00002000 (16%): Erasing
00004000 (33%): Erasing
00006000 (50%): Erasing
00008000 (66%): Erasing
0000A000 (83%): Erasing
Erased 48kB in 1.6s (30.0kB/s)
00000000 ( 0%): Programming
00002000 (16%): Programming
00004000 (33%): Programming
00006000 (50%): Programming
00008000 (66%): Programming
0000A000 (83%): Programming
Programmed 38KB +10KB in 1.1s (43.6KB/s)
Device contents checksummed OK
Leaving target processor paused
Quartus II Version 9.0 Build 132 02/25/2009 SJ Full Version
естественно крякнутый.
vadimuzzz
May 20 2010, 07:55
а ПЛИС как конфигурируется?
KriGLer
May 20 2010, 09:01
.jic фалом через jtag
EP2C20 + EPCS4
vadimuzzz
May 20 2010, 12:02
а сколько у вас памяти (on-chip)?
KriGLer
May 20 2010, 12:43
)))) она отключена вообще
vadimuzzz
May 20 2010, 12:56
Цитата(KriGLer @ May 20 2010, 19:43)

)))) она отключена вообще

пардон, я видимо проглядел. покажите картинку из SOPC )
KriGLer
May 20 2010, 13:12
vadimuzzz
May 20 2010, 13:56
так, ошибок нигде не видно. тогда идем по порядку.
1. стереть CFI, проинициализировать EPCS. после подачи питания из ниос-иде жмем run as hardware. убеждаемся, что работает.
2. зашить флеш-программером CFI. сделать дамп флешки и сличить с исходным файлом.
помогите решить проблему(ы).
ковыряюсь с платой EP3C120, хочу всё во флеш запихать, но "не играет она", точнее играет но не так как хочется. Пытаюсь реализовать чтобы при каждом положении регулятора pgm_config_select, ответственного за загрузку прошивки из флеш, грузился свой проц со своим софтом.
беру проц, генерю с вектором ресета указывающим на флеш память с нулевым смещением.
делаю прошивку:
sof2flash --optionbit=0x3fe0000 --pfl --offset=0 --input=DSP_USB1.sof --output=dsp_usb1_cfi.flash --programmingmode=PS
шью:
nios2-flash-programmer --base=0 --program dsp_usb1_cfi.flash dsp_usb1_cfi.map.flash
вижу что железо прошилось.
пишу прогу, делаю прошивку:
elf2flash --base=0 --end=0x4000000 --reset=0x0 --boot=boot_loader_cfi.srec --input=USB_test1.elf --output=myapp.flash
шью:
nios2-flash-programmer --base=0 --program myapp.flash
вижу что железо затерлось, не грузится, ладно мучаюсь дальше
меняю оффсет для железа:
sof2flash --optionbit=0x3fe0000 --pfl --offset=0х380000 --input=DSP_USB1.sof --output=dsp_usb1_cfi.flash --programmingmode=PS
шью:
nios2-flash-programmer --base=0 --program dsp_usb1_cfi.flash dsp_usb1_cfi.map.flash
вижу что всё работает!
да, флешка по даташиту расмэпина так:
FPGA Design0: 0x0-0x36ebe1
FPGA Design1: 0x380000-0x6eebe1
...
FPGA Design7: 0x1880000-0x1beebe1
вопрос1: как мне в ячейку 0х0 - 0х380000 запихать и железо и софт?
вопрос2: почему приходится перешивать заводскую standard_cfi.map.flash на dsp_usb1_cfi.map.flash чтобы железо загражалось с адреса 0x380000 при положении переключателя прошивок в 0? как сделать чтобы переключатель именно переключал т.е. при положении 0 грузился с 0х0 при 1 - с 0х380000 и т.д.?
вопрос3: нужно задавать для прошивки в каждом сегменте памяти FPGA DesignХ своё смещение ресета в железе, и как следствие свои параметры для elf2flash?
чую проблема с правильными адресами и т.д. но как решить допереть не могу.
ладно, сам и отвечаю(может кому и понадобится):
1. поставил все векторы (reset, exceptions) на on-chip память и сделал инициализию on-chip памяти my.hex
2. сгенерил проц
3. пересобрал bsp
4. сгенерил elf
5. в Nios II Command Shell сделал из elf my.hex с помощью команды elf2hex с параметрами
--width=32 --base=0x0c010000(начальный адресс on-chip памяти)
6. скомпилировал sof
7. преобразовал sof в my.pof с параметрами
конф. биты по адресу 0x3FE0000
page0 = factory.sof, start 0x0 (пришлось указать чтобы правильно сгенерились конф. биты)
page1 = my.sof, start 0x380000
8. прошил с помощью cycloneIII_3c120_dev_pfl.sof+cfi512+my.pof: page1 + конф. биты., т.к. биты скомпилированны для двух страниц 0 и 1 переключатель pgm_config_select только их и переключает
7. ... преобразовывал с помощью quartus -> convert programming files подробнее см
http://www.altera.com/literature/ug/ug_ciii_devkit.pdf Appendix A
8. ... шил quartus programmer'ом page1 со смещением 0x380000
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.