|
Загрузка NIOS из EPCS |
|
|
|
Jun 7 2012, 11:44
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 20-05-12
Из: Санкт-Петербург
Пользователь №: 71 932

|
Исходная задача: сделать загрузку из 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) { } } В комметах то, что нашел по теме, но не помогло.. Подскажите, пожалуйста, в чем может быть проблема?
|
|
|
|
|
Jun 7 2012, 12:09
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 20-05-12
Из: Санкт-Петербург
Пользователь №: 71 932

|
Я правильно понимаю, что через FlashProgrammer грузится и конфигурация FPGA, и программа для ниоса? Просто в результате нужна система, которая грузится из ECPS, при этом ниос работает на SRAM без on-chip.
|
|
|
|
|
Jun 7 2012, 12:23
|

Частый гость
 
Группа: Свой
Сообщений: 146
Регистрация: 11-08-08
Из: Kolpino
Пользователь №: 39 551

|
Цитата(Unfog @ Jun 7 2012, 16:09)  Я правильно понимаю, что через FlashProgrammer грузится и конфигурация FPGA, и программа для ниоса? Просто в результате нужна система, которая грузится из ECPS, при этом ниос работает на SRAM без on-chip. А что вам мешает сделать по этому же мануалу проект в SRAM?
--------------------
|
|
|
|
|
Jun 7 2012, 12:35
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 20-05-12
Из: Санкт-Петербург
Пользователь №: 71 932

|
Я не совсем понимаю принцип работы данной системы. Как мне кажется, FPGA грузится из EPCS, потом как то нужно загрузить код программы в SRAM. Верно? В каком направлении копать?
Собрал в SOPC идентично с мануалом альтеры, остаются все те же ошибки про epcs.
|
|
|
|
|
Jun 7 2012, 12:49
|

Частый гость
 
Группа: Свой
Сообщений: 146
Регистрация: 11-08-08
Из: Kolpino
Пользователь №: 39 551

|
Цитата(Unfog @ Jun 7 2012, 16:35)  Я не совсем понимаю принцип работы данной системы. Предлагаю вам преодолеть этот путь постепенно. Сначала создайте проект, который грузится из внутренней памяти. Потом проект, загружающийся из epcs. Потом переходите к проекту, работающему во внешней памяти. И у вас всё получится.
--------------------
|
|
|
|
|
Jun 7 2012, 12:54
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 20-05-12
Из: Санкт-Петербург
Пользователь №: 71 932

|
Проекты, которые грузятся по AS из EPCS и работают на on-chip, есть и работают. Проблем не было. Что то ниосу не нравится в модуле EPCS Serinal Flask Controller, без использования внешней памяти. Там дополнительно не нужно ничего настраивать?
Сообщение отредактировал Unfog - Jun 7 2012, 12:54
|
|
|
|
|
Jun 7 2012, 13:05
|

Частый гость
 
Группа: Свой
Сообщений: 146
Регистрация: 11-08-08
Из: Kolpino
Пользователь №: 39 551

|
Цитата(Unfog @ Jun 7 2012, 16:54)  Проекты, которые грузятся по AS из EPCS и работают на on-chip, есть и работают. Проблем не было. Что то ниосу не нравится в модуле EPCS Serinal Flask Controller, без использования внешней памяти. Там дополнительно не нужно ничего настраивать? Не совсем понял ваш вопрос. То есть, проект в SRAM памяти работает и проект из EPCS грузится. Но совместный проект не работает?
--------------------
|
|
|
|
|
Jun 7 2012, 13:22
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 20-05-12
Из: Санкт-Петербург
Пользователь №: 71 932

|
Работает простая конфигурация, когда альтера загружается из EPCS, NIOS работает на встроенной on-chip. (Прошиваю pof программером) Потом я добавляю Flash Controller в SOPC и начинают вылезать вышеуказанные ошибки.
Попробую дома тот же проект в Q11 собрать.. Спасибо за ответы!
|
|
|
|
|
Jun 7 2012, 13:29
|

Частый гость
 
Группа: Свой
Сообщений: 146
Регистрация: 11-08-08
Из: Kolpino
Пользователь №: 39 551

|
Цитата(Unfog @ Jun 7 2012, 17:22)  Работает простая конфигурация, когда альтера загружается из EPCS, NIOS работает на встроенной on-chip. (Прошиваю pof программером) Потом я добавляю Flash Controller в SOPC и начинают вылезать вышеуказанные ошибки.
Попробую дома тот же проект в Q11 собрать.. Спасибо за ответы! Может вам помогут пошаговые инструкции, которые уже давно лежат?..
--------------------
|
|
|
|
|
Jun 7 2012, 14:58
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 20-05-12
Из: Санкт-Петербург
Пользователь №: 71 932

|
Цитата(Unfog @ Jun 7 2012, 15:44)  Все сделал по мануалу, за исключением того, что использую NIOS IDE. (Cyclone 3, Quartus 9). Проблема в том, что не собирается проект в NIOS: На Q11 аналогичная ситуация. Очень смущают сообщения типа "undefined reference to `".. В настойках линкера ничего менять не нужно?
|
|
|
|
|
Jun 7 2012, 15:02
|

Лентяй
     
Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843

|
Цитата(Unfog @ Jun 7 2012, 16:35)  Я не совсем понимаю принцип работы данной системы. Да почитайте же наконец юзергайд на 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 и исполняет код копировщика, который в этом контроллере находится. После окончания копирования процессор переходит в ту область памяти, где теперь живет код приложения (т.е. туда, куда он только что этот код скопировал), и начинает этот код приложения исполнять. Все...
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Jun 7 2012, 15:14
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 20-05-12
Из: Санкт-Петербург
Пользователь №: 71 932

|
Спасибо за объяснения. Я так и делаю. Делал полные копии в SOPC с мануалов - результат один.
Сейчас повторил все в Eclipse - собралось с первого раза. Отсюда вопросы: Стоит ли переходить на Eclipse? Муторно ли переносить проекты с IDE? Что сделать, чтобы заработало в IDE?
|
|
|
|
|
Jun 7 2012, 18:04
|

Лентяй
     
Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843

|
Цитата(Unfog @ Jun 7 2012, 19:14)  Стоит ли переходить на Eclipse? Муторно ли переносить проекты с IDE? Что сделать, чтобы заработало в IDE? А что именно Вы называете IDE? Старую версию среды или режим командной строки? В общем и целом - работать должно в любом варианте, независимо от версий и режимов.
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Jun 7 2012, 19:02
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 20-05-12
Из: Санкт-Петербург
Пользователь №: 71 932

|
Цитата(Stewart Little @ Jun 7 2012, 22:04)  А что именно Вы называете IDE? Старую версию среды или режим командной строки?
В общем и целом - работать должно в любом варианте, независимо от версий и режимов. Старую версию. Я понимаю, что должно работать везде. Но видимо есть нюансы.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|