Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Прога для Microblaze во внешней памяти
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
mikki
Выручайте пацаны.
Как разместить программу которая не влезает в BRAM Xilinx Spartan во внешнюю память SDRAm и передать потом на нее управление.
3.14
Специально для пацанов создали xapp482.
mikki
Класс блин, здорово блин, респект блин. Пойду изучать. a14.gif

Стал пользовать Сузаку на спартане S3E1200 а там только SPI флэшка в качестве загрузчика и соответственно со встроенным загрузчиком который понимает файлы формата srec or bin.
Неделю уже мучаюсь не могу понять как сгенерить этот самый файл.
EDK 8,1 при вызове позволяет сделать только симуляцию а потом дает сплошные ошибки. Может версия евал, может чето неправильно делаю.

И еще маленький вопрос, как указать компилеру что проект на microblaze который не надо в БРАМ вставлять расположить по какомуто адресу, и чтоб на него можно было передать потом управление.
3.14
Смотрите в мануалах на Сузаку, там должно быть ...
Адрес размещения программы можно в свойствах проекта указывать, но лучше это делать через линковщик (воспользоваться визардом и явно указать какие секции в какой области должны лежать).
mikki
Прошу прощения за глупый вопрос, а как вообще компилировать несколько проектов , нужно ли менять настройки компилятора или линкера иесли да то как и для чего.
А то у меня если нажать 'билд проэкт' который должен быть во внешней памяти выскакивает ошибка
undefined reference to 'INT_HENDLER' help.gif
3.14
Если проекты для внешней памяти, то ничего особо настраивать не надо, после "билд алл" все должно собраться по отдельности.
А если несколько проектов для BRAM, то в свойствах проекта нужно указать какой из них должен в BRAM ложиться.
mikki
help.gif Тут бы конечно подошел антисмайлик с виселицей. Потому как непонятно, толи я чето не то делаю с SPI-flash, то ли плата кривая, то есть USB JTAG не хочет работать ST 25f64 в режиме direct SPI, толи подумать страшно Xilinx -ujdyj.

А вообще есть ли возможность отдельно указать компилятору какие куски программы или допустим какие то конкретные переменные куда раскидывать.
Например определить массивы во внешней памяти для хранения данных, а прогу разместить в BRAM.
Короче может кто присоветует что.
ПРимеры может какие есть , простенькие готовые проекты.
а-а-а!
3.14
USB JTAG не пользовался, обычным кабельком (LPT-шным) шил (утилитой xapp445) Atmel-овские DataFlash для конфига S3E, думаю разницы не должно быть.
>>А вообще есть ли возможность отдельно указать компилятору какие куски программы ...
А линковщик для чего ...
Вечером пример какой-нибудь выложу.

Кстати, я надеюсь, для вашей платы имеется модернизированный xapp482, иначе грузится то и не должно.
mikki
Цитата(3.14 @ Apr 25 2007, 09:39) *
...обычным кабельком (LPT-шным) шил (утилитой xapp445)

если можно поясните какую схему можно исполтьзовать для этого, а то в инете есть на основе НС125 и на паралллельный порт и работает ли она с програамой xspi.exe.

Я пользовался USB-JTAG, так вот на польском сайте встретил точно такую проблему, пользуясь утилитой xspi_usb через USB-JTAG не удавалось в режиме direct SPI увидеть , даже прочитать флэшку ST 25P40 (у меня 64), короче вывод такой, что ксилинкс нетого.

Короче говоря я ищу путь как запрограммировать эту самую флэшку, и народ там советует использовать пикоблэйз, хотя в моей плате есть загрузчик который пользует файл формата srec, а вот его я как не старался не смого в 8.1.03 версии сделать. Буду пробовать сделать этот файл в версии 9.1.
Буду признателен за комменты, отдельное спасибо "3.14" (пардон за назойливость жду примерчик)

И если не внапряг, как указать компилеру что большой массив конкретно разместить во внешней памяти.
Alexander_
Цитата(mikki @ Apr 25 2007, 04:42) *
А вообще есть ли возможность отдельно указать компилятору какие куски программы или допустим какие то конкретные переменные куда раскидывать.
Например определить массивы во внешней памяти для хранения данных, а прогу разместить в BRAM.
Короче может кто присоветует что.
ПРимеры может какие есть , простенькие готовые проекты.
а-а-а!


Для PowerPC делал так (думаю для Microblaze тоже подойдет):

void MyFunc(void)__attribute__ ((section (".InitFunc")));
void MyFunc(void)
{

}

Таким же образом можно объявить переменную или константу, например:

// Инициализация памяти
const char a[4]__attribute__ ((section (".InitDate"))) = {…}

Section InitFunc и InitData должны быть описаны в LinkerScript:

MEMORY
{
memory : ORIGIN = 0xfff00000, LENGTH = 0x3fff
...
}

PHDRS
{
mydata PT_LOAD ;
...
}

SECTIONS
{
.InitFunc :
{
*(.InitFunc)
} > memory : mydata
}
3.14
Вот схема кабеля и примерчик работающий из SDRAM, только Вам от тего толку ... он для загрузки из PROM.
KirillS
Цитата(Alexander_ @ Apr 26 2007, 20:08) *
Для PowerPC делал так (думаю для Microblaze тоже подойдет):

void MyFunc(void)__attribute__ ((section (".InitFunc")));
void MyFunc(void)
{

}

Таким же образом можно объявить переменную или константу, например:

// Инициализация памяти
const char a[4]__attribute__ ((section (".InitDate"))) = {…}

Section InitFunc и InitData должны быть описаны в LinkerScript:

MEMORY
{
memory : ORIGIN = 0xfff00000, LENGTH = 0x3fff
...
}

PHDRS
{
mydata PT_LOAD ;
...
}

SECTIONS
{
.InitFunc :
{
*(.InitFunc)
} > memory : mydata
}



Огромное спасибо! А не подскажете, где синтаксис LinkerScript'а описан ?
А то ищи по всему www.gnu.org...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.