Unfog 0 7 июня, 2012 Опубликовано 7 июня, 2012 · Жалоба Исходная задача: сделать загрузку из EPCS в SRAM. Но заткнулся в epcs. Все сделал по мануалу, за исключением того, что использую NIOS IDE. (Cyclone 3, Quartus 9). Проблема в том, что не собирается проект в NIOS: **** Build of configuration Release for project SRAMCPU **** make -s all includes Compiling main.cpp... Linking SRAMCPU.elf... obj/main.o(.text+0x18): In function `alt_sys_init': /cygdrive/d/altera/try/SRAM/software/SRAMCPU_syslib/Release/system_description/alt_sys_init.c:96: undefined reference to `alt_epcs_flash_init(alt_flash_epcs_dev*)' obj/main.o(.text+0x1c):/cygdrive/d/altera/try/SRAM/software/SRAMCPU_syslib/Release/system_description/alt_sys_init.c:96: undefined reference to `alt_epcs_flash_init(alt_flash_epcs_dev*)' obj/main.o(.data+0x14):/cygdrive/d/altera/try/SRAM/software/SRAMCPU_syslib/Release/system_description/alt_sys_init.c:96: undefined reference to `alt_epcs_flash_write(alt_flash_dev*, int, void const*, int)' obj/main.o(.data+0x18):/cygdrive/d/altera/try/SRAM/software/SRAMCPU_syslib/Release/system_description/alt_sys_init.c:96: undefined reference to `alt_epcs_flash_read(alt_flash_dev*, int, void*, int)' obj/main.o(.data+0x1c):/cygdrive/d/altera/try/SRAM/software/SRAMCPU_syslib/Release/system_description/alt_sys_init.c:96: undefined reference to `alt_epcs_flash_get_info(alt_flash_dev*, flash_region**, int*)' obj/main.o(.data+0x20):/cygdrive/d/altera/try/SRAM/software/SRAMCPU_syslib/Release/system_description/alt_sys_init.c:96: undefined reference to `alt_epcs_flash_erase_block(alt_flash_dev*, int)' obj/main.o(.data+0x24): In function `main': ../main.cpp:34: undefined reference to `alt_epcs_flash_write_block(alt_flash_dev*, int, int, void const*, int)' collect2: ld returned 1 exit status make: *** [SRAMCPU.elf] Error 1 Код программы: #include "system.h" #include "alt_types.h" #include "sys/alt_irq.h" #include "alt_sys_init.c" #include "altera_avalon_pio_regs.h" /* #define ALT_USE_EPCS_FLASH #include <altera_avalon_epcs_flash_controller.h> #include "epcs_commands.h" #include "sys/alt_flash.h" #include "sys/alt_flash_dev.h" */ int main() { //initialization alt_sys_init(); while(1) { } } В комметах то, что нашел по теме, но не помогло.. Подскажите, пожалуйста, в чем может быть проблема? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 41 7 июня, 2012 Опубликовано 7 июня, 2012 · Жалоба Описанный способ, конечно, имеет право на существование, но, имхо, это способ трансректальный. :cranky: Используйте FlashProgrammer Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Unfog 0 7 июня, 2012 Опубликовано 7 июня, 2012 · Жалоба Я правильно понимаю, что через FlashProgrammer грузится и конфигурация FPGA, и программа для ниоса? Просто в результате нужна система, которая грузится из ECPS, при этом ниос работает на SRAM без on-chip. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
naliwator 0 7 июня, 2012 Опубликовано 7 июня, 2012 · Жалоба Я правильно понимаю, что через FlashProgrammer грузится и конфигурация FPGA, и программа для ниоса? Просто в результате нужна система, которая грузится из ECPS, при этом ниос работает на SRAM без on-chip. А что вам мешает сделать по этому же мануалу проект в SRAM? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Unfog 0 7 июня, 2012 Опубликовано 7 июня, 2012 · Жалоба Я не совсем понимаю принцип работы данной системы. Как мне кажется, FPGA грузится из EPCS, потом как то нужно загрузить код программы в SRAM. Верно? В каком направлении копать? Собрал в SOPC идентично с мануалом альтеры, остаются все те же ошибки про epcs. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
naliwator 0 7 июня, 2012 Опубликовано 7 июня, 2012 · Жалоба Я не совсем понимаю принцип работы данной системы. Предлагаю вам преодолеть этот путь постепенно. Сначала создайте проект, который грузится из внутренней памяти. Потом проект, загружающийся из epcs. Потом переходите к проекту, работающему во внешней памяти. И у вас всё получится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Unfog 0 7 июня, 2012 Опубликовано 7 июня, 2012 (изменено) · Жалоба Проекты, которые грузятся по AS из EPCS и работают на on-chip, есть и работают. Проблем не было. Что то ниосу не нравится в модуле EPCS Serinal Flask Controller, без использования внешней памяти. Там дополнительно не нужно ничего настраивать? Изменено 7 июня, 2012 пользователем Unfog Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
naliwator 0 7 июня, 2012 Опубликовано 7 июня, 2012 · Жалоба Проекты, которые грузятся по AS из EPCS и работают на on-chip, есть и работают. Проблем не было. Что то ниосу не нравится в модуле EPCS Serinal Flask Controller, без использования внешней памяти. Там дополнительно не нужно ничего настраивать? Не совсем понял ваш вопрос. То есть, проект в SRAM памяти работает и проект из EPCS грузится. Но совместный проект не работает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Unfog 0 7 июня, 2012 Опубликовано 7 июня, 2012 · Жалоба Работает простая конфигурация, когда альтера загружается из EPCS, NIOS работает на встроенной on-chip. (Прошиваю pof программером) Потом я добавляю Flash Controller в SOPC и начинают вылезать вышеуказанные ошибки. Попробую дома тот же проект в Q11 собрать.. Спасибо за ответы! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
naliwator 0 7 июня, 2012 Опубликовано 7 июня, 2012 · Жалоба Работает простая конфигурация, когда альтера загружается из EPCS, NIOS работает на встроенной on-chip. (Прошиваю pof программером) Потом я добавляю Flash Controller в SOPC и начинают вылезать вышеуказанные ошибки. Попробую дома тот же проект в Q11 собрать.. Спасибо за ответы! Может вам помогут пошаговые инструкции, которые уже давно лежат?.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Unfog 0 7 июня, 2012 Опубликовано 7 июня, 2012 · Жалоба Все сделал по мануалу, за исключением того, что использую NIOS IDE. (Cyclone 3, Quartus 9). Проблема в том, что не собирается проект в NIOS: На Q11 аналогичная ситуация. Очень смущают сообщения типа "undefined reference to `".. В настойках линкера ничего менять не нужно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 41 7 июня, 2012 Опубликовано 7 июня, 2012 · Жалоба Я не совсем понимаю принцип работы данной системы. Да почитайте же наконец юзергайд на FlashProgrammer!!! Там все английским по белому расписано! В Вашей SOPC-системе должен присутствовать epcs_flash_controller, и процессорное ядро должно иметь jtag drbug модуль. Вектор сброса процессора должен указывать на epcs_flash_controller. Прежде, чем запускать FlashProgrаmmer, Вы должны по JTAG'у сконфигурировать Вашу ПЛИС'ку соответствующим sof-файлом. С помощью FlashProgramer'а Вы прошиваете в конфигурационное ПЗУ (т.е. в EPCS'ку) и конфигурацию ПЛИС'ки (sof-файл), и исполняемый код процессора (elf-файл). Как это все работает. В epcs_flash_controller'е имеется небольшой блок памяти, в котором живет программа-копировщик (она предназначена для копирования кода приложения из EPCS'ки в ту память, куда Вы укажете). После включения питания сперва происходит конфигурация ПЛИС'ки. Ваш проект начинает работать, и процессор по вектору сброса попадает в epcs_flash_controller и исполняет код копировщика, который в этом контроллере находится. После окончания копирования процессор переходит в ту область памяти, где теперь живет код приложения (т.е. туда, куда он только что этот код скопировал), и начинает этот код приложения исполнять. Все... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Unfog 0 7 июня, 2012 Опубликовано 7 июня, 2012 · Жалоба Спасибо за объяснения. Я так и делаю. Делал полные копии в SOPC с мануалов - результат один. Сейчас повторил все в Eclipse - собралось с первого раза. Отсюда вопросы: Стоит ли переходить на Eclipse? Муторно ли переносить проекты с IDE? Что сделать, чтобы заработало в IDE? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 41 7 июня, 2012 Опубликовано 7 июня, 2012 · Жалоба Стоит ли переходить на Eclipse? Муторно ли переносить проекты с IDE? Что сделать, чтобы заработало в IDE? А что именно Вы называете IDE? Старую версию среды или режим командной строки? В общем и целом - работать должно в любом варианте, независимо от версий и режимов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Unfog 0 7 июня, 2012 Опубликовано 7 июня, 2012 · Жалоба А что именно Вы называете IDE? Старую версию среды или режим командной строки? В общем и целом - работать должно в любом варианте, независимо от версий и режимов. Старую версию. Я понимаю, что должно работать везде. Но видимо есть нюансы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться