реклама на сайте
подробности

 
 
> Загрузка NIOS из EPCS
Unfog
сообщение Jun 7 2012, 11:44
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 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)
    {
          
    }
    
}

В комметах то, что нашел по теме, но не помогло..

Подскажите, пожалуйста, в чем может быть проблема?
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
Stewart Little
сообщение Jun 7 2012, 12:03
Сообщение #2


Лентяй
******

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



Описанный способ, конечно, имеет право на существование, но, имхо, это способ трансректальный. cranky.gif
Используйте FlashProgrammer


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
Unfog
сообщение Jun 7 2012, 12:09
Сообщение #3


Участник
*

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



Я правильно понимаю, что через FlashProgrammer грузится и конфигурация FPGA, и программа для ниоса?
Просто в результате нужна система, которая грузится из ECPS, при этом ниос работает на SRAM без on-chip.
Go to the top of the page
 
+Quote Post
naliwator
сообщение Jun 7 2012, 12:23
Сообщение #4


Частый гость
**

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



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

А что вам мешает сделать по этому же мануалу проект в SRAM?


--------------------
Go to the top of the page
 
+Quote Post
Unfog
сообщение Jun 7 2012, 12:35
Сообщение #5


Участник
*

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



Я не совсем понимаю принцип работы данной системы.
Как мне кажется, FPGA грузится из EPCS, потом как то нужно загрузить код программы в SRAM. Верно? В каком направлении копать?

Собрал в SOPC идентично с мануалом альтеры, остаются все те же ошибки про epcs.
Go to the top of the page
 
+Quote Post
naliwator
сообщение Jun 7 2012, 12:49
Сообщение #6


Частый гость
**

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



Цитата(Unfog @ Jun 7 2012, 16:35) *
Я не совсем понимаю принцип работы данной системы.

Предлагаю вам преодолеть этот путь постепенно. Сначала создайте проект, который грузится из внутренней памяти. Потом проект, загружающийся из epcs. Потом переходите к проекту, работающему во внешней памяти. И у вас всё получится.


--------------------
Go to the top of the page
 
+Quote Post
Unfog
сообщение Jun 7 2012, 12:54
Сообщение #7


Участник
*

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



Проекты, которые грузятся по AS из EPCS и работают на on-chip, есть и работают. Проблем не было.
Что то ниосу не нравится в модуле EPCS Serinal Flask Controller, без использования внешней памяти. Там дополнительно не нужно ничего настраивать?

Сообщение отредактировал Unfog - Jun 7 2012, 12:54
Go to the top of the page
 
+Quote Post
naliwator
сообщение Jun 7 2012, 13:05
Сообщение #8


Частый гость
**

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



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

Не совсем понял ваш вопрос. То есть, проект в SRAM памяти работает и проект из EPCS грузится. Но совместный проект не работает?


--------------------
Go to the top of the page
 
+Quote Post
Unfog
сообщение Jun 7 2012, 13:22
Сообщение #9


Участник
*

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



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

Попробую дома тот же проект в Q11 собрать..
Спасибо за ответы!
Go to the top of the page
 
+Quote Post
naliwator
сообщение Jun 7 2012, 13:29
Сообщение #10


Частый гость
**

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



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

Попробую дома тот же проект в Q11 собрать..
Спасибо за ответы!

Может вам помогут пошаговые инструкции, которые уже давно лежат?..


--------------------
Go to the top of the page
 
+Quote Post
Unfog
сообщение Jun 7 2012, 14:58
Сообщение #11


Участник
*

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



Цитата(Unfog @ Jun 7 2012, 15:44) *
Все сделал по мануалу, за исключением того, что использую NIOS IDE. (Cyclone 3, Quartus 9).
Проблема в том, что не собирается проект в NIOS:



На Q11 аналогичная ситуация.
Очень смущают сообщения типа "undefined reference to `".. В настойках линкера ничего менять не нужно?
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Jun 7 2012, 15:02
Сообщение #12


Лентяй
******

Группа: Свой
Сообщений: 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 и исполняет код копировщика, который в этом контроллере находится. После окончания копирования процессор переходит в ту область памяти, где теперь живет код приложения (т.е. туда, куда он только что этот код скопировал), и начинает этот код приложения исполнять.

Все...


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
Unfog
сообщение Jun 7 2012, 15:14
Сообщение #13


Участник
*

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



Спасибо за объяснения.
Я так и делаю. Делал полные копии в SOPC с мануалов - результат один.

Сейчас повторил все в Eclipse - собралось с первого раза.
Отсюда вопросы:
Стоит ли переходить на Eclipse?
Муторно ли переносить проекты с IDE?
Что сделать, чтобы заработало в IDE?
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Jun 7 2012, 18:04
Сообщение #14


Лентяй
******

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



Цитата(Unfog @ Jun 7 2012, 19:14) *
Стоит ли переходить на Eclipse?
Муторно ли переносить проекты с IDE?
Что сделать, чтобы заработало в IDE?

А что именно Вы называете IDE?
Старую версию среды или режим командной строки?

В общем и целом - работать должно в любом варианте, независимо от версий и режимов.


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
Unfog
сообщение Jun 7 2012, 19:02
Сообщение #15


Участник
*

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



Цитата(Stewart Little @ Jun 7 2012, 22:04) *
А что именно Вы называете IDE?
Старую версию среды или режим командной строки?

В общем и целом - работать должно в любом варианте, независимо от версий и режимов.

Старую версию.
Я понимаю, что должно работать везде. Но видимо есть нюансы.

Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 22:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.015 секунд с 7
ELECTRONIX ©2004-2016