[an error occurred while processing this directive]
Как раздать память в VC5509 и не попасть под раздачу? ;-) (+)
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено misyachniy 10 марта 2006 г. 13:56

Осваиваю периферию VC5509.
Дошел до USB. С помощью CSL GUI сгенерировал "h" и "с" файлы
и присоединил их к уже изученой части программы.
Скомпилировал, не влезло
error: can't allocate .text, size 00005807 (page 0) in SARAM1
avail: 00005000

Влез в свой cmd файл я использовал из примера i2c1.cmd:


//---------i2c1.cmd---------
MEMORY
{
PAGE 0:

MMR : origin = 0000000h, length = 00000c0h
SPRAM : origin = 00000c0h, length = 0000040h
VECS : origin = 0000100h, length = 0000100h
DARAM0 : origin = 0000200h, length = 0003E00h
DARAM1 : origin = 0004000h, length = 0004000h
DARAM2 : origin = 0008000h, length = 0004000h
DARAM3 : origin = 000c000h, length = 0004000h

SARAM0 : origin = 0010000h, length = 0004000h
SARAM1 : origin = 0014000h, length = 0005000h
SARAM2 : origin = 0019000h, length = 0003000h
SARAM3 : origin = 001c000h, length = 0004000h
SARAM4 : origin = 0020000h, length = 0004000h
SARAM5 : origin = 0024000h, length = 0004000h
SARAM6 : origin = 0028000h, length = 0004000h
SARAM7 : origin = 002c000h, length = 0004000h
SARAM8 : origin = 0030000h, length = 0004000h
SARAM9 : origin = 0034000h, length = 0004000h
SARAM10 : origin = 0038000h, length = 0004000h
SARAM11 : origin = 003c000h, length = 0004000h
SARAM12 : origin = 0040000h, length = 0004000h
SARAM13 : origin = 0044000h, length = 0004000h
SARAM14 : origin = 0048000h, length = 0004000h
SARAM15 : origin = 004c000h, length = 0004000h

CE0 : origin = 0050000h, length = 03b0000h
CE1 : origin = 0400000h, length = 0400000h
CE2 : origin = 0800000h, length = 0400000h
CE3 : origin = 0c00000h, length = 03f8000h

PDROM : origin = 0ff8000h, length = 07f00h
/* VECS : origin = 0ffff00h, length = 00100h */ /* reset vector */
}


SECTIONS
{
.vectors : {} > VECS PAGE 0 /* interrupt vector table */
.cinit : {} > SARAM0 PAGE 0
.text : {} > SARAM1 PAGE 0
isrs : {} > SARAM2 PAGE 0

.stack : {} > DARAM0 PAGE 0
.sysstack: {} > DARAM0 PAGE 0
.sysmem : {} > DARAM1 PAGE 0
.data : {} > DARAM1 PAGE 0
.bss : {} > DARAM1 PAGE 0
.const : {} > DARAM1 PAGE 0

.cio : {} > DARAM1 PAGE 0
.csldata: {} > DARAM0 PAGE 0

tskSeg : {} > SARAM3 PAGE 0
myisrSeg: {} > SARAM3 PAGE 0
}

То есть память описана и аподелена как в документации на процессор.
в CMD файле, который сгенерил CSL GUIЭ, деления нет:


DARAM: origin = 0x200, len = 0xfe00
SARAM: origin = 0x10000, len = 0x30000
VECT: origin = 0x100, len = 0x100

На сколько я понимаю, деление памяти позволяет эффективно работать DMA, HPI, USB.

Для того, чтобы компилятору хватило места я, очевидно, могу объединить несколько секций изменив параметр "length"

Но наверное правильнее выделить память для для буферов USB именно в DARAM.
Как это правильно сделать?
Какой документ почитать о правильной раздаче памяти?
Спасибо.


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru