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

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

Отправлено KykyryzzZ 17 марта 2006 г. 14:52


Пытаюсь сконфигурировать EMIF, вернее сконфигурировал, но при запуске программы данные читаются по непонятным (для меня по крайней мере адресам).
Система такая: TMS по EMIF читает данные из ПЛИС по 8-битному ассинхронному интерфейсу. !К ПЛИС подключен только CE0, остальные болтаются в воздухе! На любой пришедший адрес, ПЛИС должна выставлять одинаковое число (например 3А)
но когда открываю memory viewer картина получается следующая: (файлы с текстом ниже )
данные пишутся с адреса 0х8000, т.е.
adr | data
0х8000 | 3А3А
...
0х10000 | 3А3А
...
0x100000 | 3А3А
...
0x1DFFFF | 3A3A
0x1E0000 | ----
...
0x1FFFF | ----
0x200000 | FFFF
0x200001 | FF3A
0x200002 | FFFF
0x200003 | FF3A
...
0x7FFFFE | FFFF
0x7FFFFF | FF3A
0x800000 | ----
0x800001 | ----
...
0xFFFFFF | ----

настройки следующие ( файлы emif_test.c и emif_test.cmd)

//===============================================================
//emif_test.c
//TMS320c5502

#include
#include
#include
#include
#include
#include

EMIF_Config MyConfig = {
0x06CF, /*EMIF_GCTL1 0x800 */
0x0003, /*EMIF_GCTL2 0x801 */
0x7F4F, /*EMIF_CE11 0x802 */
0xFFFF, /*EMIF_CE12 0x803 */
0x7F0F, /*EMIF_CE01 0x804 */
0xFFFF, /*EMIF_CE02 0x805 */
0xFF4F, /*EMIF_CE21 0x808 */
0x00FF, /*EMIF_CE22 0x809 */
0x7F4F, /*EMIF_CE31 0x80A */
0xFFFF, /*EMIF_CE32 0x80B */
0x00FF, /*EMIF_SDCNT1 0x80C */
0x7F0F, /*EMIF_SDCNT2 0x80D */
0xFFFF, /*EMIF_SDREF1 0x80E */
0x00FF, /*EMIF_SDREF2 0x80F */
0x07FF, /*EMIF_SDEXT1 0x810 */
0x0FFF, /*EMIF_SDEXT2 0x811 */
0x0000, /*EMIF_CE1SECCTL1 0x822 */
0x0000, /*EMIF_CE0SECCTL1 0x824 */
0x0000, /*EMIF_CE2SECCTL1 0x828 */
0x0000, /*EMIF_CE3SECCTL1 0x82Ar */
0xFFF0, /*EMIF_CECTL1(cescr)0x840 + */
};

void datarun(void);
void main()
{

CSL_init();
EMIF_config(&MyConfig);

datarun();
}

void datarun(void)
{

}

//end of emif_test.c
//===============================================================


//===============================================================
//emif_test.cmd


MEMORY
{ VECTS : origin = 0x0000 length = 0x100
DARAM0 : origin = 0x0200 length = 0x1000
DARAM1 : origin = 0x002000 length = 0x003FFF

DARAM3 : origin = 0x006000 length = 0x001FFF
DARAM4 : origin = 0x008000 length = 0x001FFF
DARAM5 : origin = 0x00A000 length = 0x001FFF
DARAM6 : origin = 0x00C000 length = 0x001FFF
DARAM7 : origin = 0x00E000 length = 0x001FFF

CE0 : origin = 0x010000 length = 0x3EFFFF
CE1 : origin = 0x400000 length = 0x3FFFFF
CE2 : origin = 0x800000 length = 0x3FFFFF
CE3 : origin = 0xC00000 length = 0x3F7FFF

}

SECTIONS
{
.cinit > DARAM0
.text > DARAM1
.stack > DARAM4
.sysstack > DARAM4
.sysmem > DARAM3
.data > DARAM3
.cio > DARAM0
.bss > DARAM3
.const > DARAM0
.csldata > DARAM0

}


//end of emif_test.cmd
//===============================================================

По идее, как я понимаю, картина памяти должна быть такая:
adr | data
0х8000 | xxxx
...
0х10000 | 3А3А
...
0x3EFFFF | 3A3A
0x3FFFFF | 3А3А
0x400000 | ----
...
0xFFFFFF | ----

Объясните пожалуйста, в чем загвоздка???

С нетерпением жду ответов
Большое спасибо

P.S. если есть возможность угостить работающим примерчиком, буду очень рад, а то в example куча разного, а по emif ниодного примера

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru