|
|
  |
Прога для Microblaze во внешней памяти |
|
|
|
Apr 20 2007, 08:06
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 28-03-07
Пользователь №: 26 559

|
Выручайте пацаны. Как разместить программу которая не влезает в BRAM Xilinx Spartan во внешнюю память SDRAm и передать потом на нее управление.
|
|
|
|
|
Apr 20 2007, 10:20
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 28-03-07
Пользователь №: 26 559

|
Класс блин, здорово блин, респект блин. Пойду изучать. Стал пользовать Сузаку на спартане S3E1200 а там только SPI флэшка в качестве загрузчика и соответственно со встроенным загрузчиком который понимает файлы формата srec or bin. Неделю уже мучаюсь не могу понять как сгенерить этот самый файл. EDK 8,1 при вызове позволяет сделать только симуляцию а потом дает сплошные ошибки. Может версия евал, может чето неправильно делаю. И еще маленький вопрос, как указать компилеру что проект на microblaze который не надо в БРАМ вставлять расположить по какомуто адресу, и чтоб на него можно было передать потом управление.
|
|
|
|
|
Apr 23 2007, 11:53
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 28-03-07
Пользователь №: 26 559

|
Прошу прощения за глупый вопрос, а как вообще компилировать несколько проектов , нужно ли менять настройки компилятора или линкера иесли да то как и для чего. А то у меня если нажать 'билд проэкт' который должен быть во внешней памяти выскакивает ошибка undefined reference to 'INT_HENDLER'
|
|
|
|
|
Apr 25 2007, 03:42
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 28-03-07
Пользователь №: 26 559

|
 Тут бы конечно подошел антисмайлик с виселицей. Потому как непонятно, толи я чето не то делаю с SPI-flash, то ли плата кривая, то есть USB JTAG не хочет работать ST 25f64 в режиме direct SPI, толи подумать страшно Xilinx -ujdyj. А вообще есть ли возможность отдельно указать компилятору какие куски программы или допустим какие то конкретные переменные куда раскидывать. Например определить массивы во внешней памяти для хранения данных, а прогу разместить в BRAM. Короче может кто присоветует что. ПРимеры может какие есть , простенькие готовые проекты. а-а-а!
|
|
|
|
|
Apr 26 2007, 13:17
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 28-03-07
Пользователь №: 26 559

|
Цитата(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" (пардон за назойливость жду примерчик) И если не внапряг, как указать компилеру что большой массив конкретно разместить во внешней памяти.
|
|
|
|
|
Apr 26 2007, 17:08
|

Участник

Группа: Свой
Сообщений: 45
Регистрация: 7-04-06
Пользователь №: 15 929

|
Цитата(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 }
|
|
|
|
|
May 13 2007, 11:22
|
Участник

Группа: Новичок
Сообщений: 44
Регистрация: 10-10-06
Пользователь №: 21 161

|
Цитата(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...
--------------------
Some days you eat the bear. Some days the bear eats you.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|