[an error occurred while processing this directive]
Помогите разобраться...
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

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

Отправлено Jolik 01 декабря 2004 г. 03:53

может тоже руки кривые? Но...
Пишу:

unsigned char *databuf;

main
{
...
databuf = (unsigned char*) сalloc(DATA_SIZE, sizeof(char));
...
}

CMD файл проекта
-------------------------------------------------------------------
MEMORY
{
PAGE 0:

/* MMR : origin = 0000000h, length = 00000c0h
SPRAM : origin = 00000c0h, length = 0000040h */
VECS : origin = 0000300h, length = 0000100h
DARAM0 : origin = 0000500h, length = 0003B00h
DARAM1 : origin = 0004000h, length = 0004000h
DARAM2 : origin = 0008000h, length = 0004000h
DARAM3 : origin = 000c000h, length = 0004000h

SARAM0 : origin = 0010000h, length = 0004000h
SARAM1 : origin = 0014000h, length = 000C000h
/* SARAM2 : origin = 0018000h, length = 0004000h
SARAM3 : origin = 001c000h, length = 0004000h */
SARAM4 : origin = 0020000h, length = 000C000h
/* SARAM5 : origin = 0024000h, length = 0004000h
SARAM6 : origin = 0028000h, length = 0004000h */
SARAM7 : origin = 002c000h, length = 000F000h
/* 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
.bss : {} > SARAM4 PAGE 0

.stack : {} > DARAM1 PAGE 0
.sysstack: {} > DARAM1 PAGE 0
/* .sysmem : {} > DARAM2 PAGE 0 */
.sysmem : {} > SARAM7 PAGE 0
.cio : {} > DARAM3 PAGE 0
.data : {} > DARAM3 PAGE 0
.const : {} > DARAM3 PAGE 0

.csldata : {} > DARAM0 PAGE 0
/* dmaMem : {} > DARAM0 PAGE 0 */
}
---------------------------------------------------------------------

Компилятор размещает databuf в DARAM1 - на месте стеков!!!
В другом месте программы тот же код размещает нормально память в .sysmem.
Объясните - глюк это, или я что-то не то делаю?
В результате пришлось сделать

unsigned char databuf[DATA_SIZE];
Только после этого заработало...


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

Ответы


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

Имя (обязательно): 
Пароль: 
E-mail: 

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

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

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


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru