|
Загрузка 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) { } } В комметах то, что нашел по теме, но не помогло.. Подскажите, пожалуйста, в чем может быть проблема?
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 18)
|
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? Старую версию среды или режим командной строки?
В общем и целом - работать должно в любом варианте, независимо от версий и режимов. Старую версию. Я понимаю, что должно работать везде. Но видимо есть нюансы.
|
|
|
|
|
Jun 8 2012, 10:11
|

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

|
Цитата(Unfog @ Jun 7 2012, 23:02)  Старую версию. Я понимаю, что должно работать везде. Но видимо есть нюансы. В старой версии не было такого понятия, как BSP. Вместо него там имела место библиотека проекта - system library. Настройки system library в старой версии IDE весьма отличаются от настроек BSP в новой версии. Рекомендую Вам переходить на новую версию - по крайней мере компиляция будет происходит заметно быстрее. Работать в старой версии, имхо, имеет смысл только тогда, когда Вы хотите использовать C2H - компилятор.
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
May 1 2013, 19:33
|
Местный
  
Группа: Свой
Сообщений: 262
Регистрация: 18-02-05
Из: SPb
Пользователь №: 2 743

|
Подниму тему. У меня немного другая проблема. Не работает sof2flash. Код Info: Quartus II 32-bit Convert_programming_file was successful. 0 errors, 0 warnings Info: Peak virtual memory: 121 megabytes Info: Processing ended: Wed May 1 22:07:33 2013 Info: Elapsed time: 00:00:02 Info: Total CPU time (on all processors): 00:00:01 01.05.2013 22:07:33 - (SEVERE) sof2flash: Error generating Flash file, exiting 01.05.2013 22:07:33 - (FINE) sof2flash: Done По факту получается только залить квартус-программером .sof файл в epcs, установленную на отладочной плате (DE1). А софт запускается только дебагером из Ниосовского Эклипса. То есть, проект с ниосом и софт исправные. Но, почему-то, не удается это все засунуть в epcs. Пока в проекте была CFIflash, все работало, но хочется от нее избавиться.
|
|
|
|
|
May 4 2013, 15:44
|
Местный
  
Группа: Свой
Сообщений: 262
Регистрация: 18-02-05
Из: SPb
Пользователь №: 2 743

|
Цитата(vadimuzzz @ May 4 2013, 19:31)  покажите код, как вызывается sof2flash Код sof2flash --epcs --input="/home/temp/avto1.sof" --output="/home/temp/out.flash" --verbose NiosFlashProgrammer тоже затыкается на конвертировании. Сейчас хочу попробовать поставить более старый квартус и ниос и повторить. Думаю, что это у меня из-за системы (Linux x64), либо что-то с таблеткой. Попробовал на версии квартуса 12,0 - все работает. 12.1sp1 - нивкакую.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|