Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Nios II Software
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Страницы: 1, 2
vadimuzzz
Цитата(KriGLer @ May 20 2010, 00:53) *
Да, через него

тогда давайте логи программера. какой версии квартус?
KriGLer
если это то:
Код
#!/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
а ПЛИС как конфигурируется?
KriGLer
.jic фалом через jtag

EP2C20 + EPCS4
vadimuzzz
а сколько у вас памяти (on-chip)?
KriGLer
)))) она отключена вообще blush.gif
vadimuzzz
Цитата(KriGLer @ May 20 2010, 19:43) *
)))) она отключена вообще blush.gif

пардон, я видимо проглядел. покажите картинку из SOPC )
vadimuzzz
так, ошибок нигде не видно. тогда идем по порядку.
1. стереть CFI, проинициализировать EPCS. после подачи питания из ниос-иде жмем run as hardware. убеждаемся, что работает.
2. зашить флеш-программером CFI. сделать дамп флешки и сличить с исходным файлом.
AntiL
помогите решить проблему(ы).
ковыряюсь с платой 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?

чую проблема с правильными адресами и т.д. но как решить допереть не могу.
AntiL
ладно, сам и отвечаю(может кому и понадобится):
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 только их и переключает

AntiL
7. ... преобразовывал с помощью quartus -> convert programming files подробнее см http://www.altera.com/literature/ug/ug_ciii_devkit.pdf Appendix A
8. ... шил quartus programmer'ом page1 со смещением 0x380000
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.