Перейти к содержанию
    

Прога для Microblaze во внешней памяти

Выручайте пацаны.

Как разместить программу которая не влезает в BRAM Xilinx Spartan во внешнюю память SDRAm и передать потом на нее управление.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Класс блин, здорово блин, респект блин. Пойду изучать. :a14:

 

Стал пользовать Сузаку на спартане S3E1200 а там только SPI флэшка в качестве загрузчика и соответственно со встроенным загрузчиком который понимает файлы формата srec or bin.

Неделю уже мучаюсь не могу понять как сгенерить этот самый файл.

EDK 8,1 при вызове позволяет сделать только симуляцию а потом дает сплошные ошибки. Может версия евал, может чето неправильно делаю.

 

И еще маленький вопрос, как указать компилеру что проект на microblaze который не надо в БРАМ вставлять расположить по какомуто адресу, и чтоб на него можно было передать потом управление.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смотрите в мануалах на Сузаку, там должно быть ...

Адрес размещения программы можно в свойствах проекта указывать, но лучше это делать через линковщик (воспользоваться визардом и явно указать какие секции в какой области должны лежать).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

А то у меня если нажать 'билд проэкт' который должен быть во внешней памяти выскакивает ошибка

undefined reference to 'INT_HENDLER' :help:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если проекты для внешней памяти, то ничего особо настраивать не надо, после "билд алл" все должно собраться по отдельности.

А если несколько проектов для BRAM, то в свойствах проекта нужно указать какой из них должен в BRAM ложиться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

:help: Тут бы конечно подошел антисмайлик с виселицей. Потому как непонятно, толи я чето не то делаю с SPI-flash, то ли плата кривая, то есть USB JTAG не хочет работать ST 25f64 в режиме direct SPI, толи подумать страшно Xilinx -ujdyj.

 

А вообще есть ли возможность отдельно указать компилятору какие куски программы или допустим какие то конкретные переменные куда раскидывать.

Например определить массивы во внешней памяти для хранения данных, а прогу разместить в BRAM.

Короче может кто присоветует что.

ПРимеры может какие есть , простенькие готовые проекты.

а-а-а!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

USB JTAG не пользовался, обычным кабельком (LPT-шным) шил (утилитой xapp445) Atmel-овские DataFlash для конфига S3E, думаю разницы не должно быть.

>>А вообще есть ли возможность отдельно указать компилятору какие куски программы ...

А линковщик для чего ...

Вечером пример какой-нибудь выложу.

 

Кстати, я надеюсь, для вашей платы имеется модернизированный xapp482, иначе грузится то и не должно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...обычным кабельком (LPT-шным) шил (утилитой xapp445)

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

 

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

 

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

Буду признателен за комменты, отдельное спасибо "3.14" (пардон за назойливость жду примерчик)

 

И если не внапряг, как указать компилеру что большой массив конкретно разместить во внешней памяти.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вообще есть ли возможность отдельно указать компилятору какие куски программы или допустим какие то конкретные переменные куда раскидывать.

Например определить массивы во внешней памяти для хранения данных, а прогу разместить в 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

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот схема кабеля и примерчик работающий из SDRAM, только Вам от тего толку ... он для загрузки из PROM.

Microblaze_prom.rar

jtag_cable.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для 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...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...