Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Цифровые сигнальные процессоры (DSP) и их применение»

eZdsp и off-chip SRAM(+)

Отправлено АВГ 15 ноября 2008 г. 20:22


Возникли проблемы при попытке использовать имеющееся на плате ОЗУ, и где и чего я нахомутал - никак не соображу. Помогите, кто чем может!

1. Не удалось найти документа, определяющего, где расположены 64К наплатной памяти. По совету "fill all ram locations with 0x0000,
check the problematic locations, fill all ram with 0xFFFF and check the problematic locations" методом научного тыка определил, что внешнее ОЗУ "видно" начиная с адреса 0х100000, т.е. в 64К младших адресов Zone6. ЭТО ПРАВИЛЬНО?

2. Поэкспериментировал с использованием этого ОЗУ - фигня какая-то получается...
В порядке тестирования Делал на базе проекта realtime из примеров CCS - :
-----------------------------------
#pragma DATA_SECTION(va, "big_array");
unsigned int va[2000];
unsigned int i2;
int main(void)
{
for (i2=0; i2<1800; i2++) va[i2]=i2;
return 0;
}
-------------------------------------

И соответственно в cmd-файле (тоже на базе файла из проекта realtime)
-------------------------------------
MEMORY
{
PAGE 0 : BOOT(R) : origin = 0x3f8000, length = 0x80
PAGE 0 : PROG(R) : origin = 0x3f8080, length = 0x1f80
PAGE 0 : RESET(R) : origin = 0x3fffc0, length = 0x2

PAGE 1 : M0RAM(RW) : origin = 0x000000, length = 0x400
PAGE 1 : M1RAM(RW) : origin = 0x000400, length = 0x400
PAGE 1 : PIEVT(RW) : origin = 0x000d02, length = 0xfe
PAGE 1 : L0L1RAM(RW) : origin = 0x008000, length = 0x2000

/*64К в Zone6 - создано мною*/
PAGE 1 : TST_RAM(RW) : origin = 0x00100000, length = 0x10000
}

SECTIONS
{
/* 22-bit program sections */
.reset : > RESET, PAGE = 0, TYPE = DSECT
.pinit : > PROG, PAGE = 0
.cinit : > PROG, PAGE = 0
.text : > PROG, PAGE = 0

/* 16-Bit data sections */
.const : > M0RAM, PAGE = 1
.bss : > M1RAM, PAGE = 1
.stack : > M1RAM, PAGE = 1
.sysmem : > M0RAM, PAGE = 1

/* 32-bit data sections */
.vectors : > PIEVT, PAGE = 1
.ebss : > L0L1RAM, PAGE = 1
.econst : > L0L1RAM, PAGE = 1
.esysmem : > L0L1RAM, PAGE = 1

/* место в Zone6 для размещения массива va[] - создано мною*/
big_array : > TST_RAM, PAGE = 1

}
-------------------------------------

Так вот эта программка виснет, причем, как-то в зависимости от числа задействованных ячеек.
Если заремачить строчку с #pragma - все работает, естественно

rts2800_ml.lib - в проект включен.
Джампер J1 (XMP/MCn Select) - в положении "microcomputer mode"
Джамперы выбора Boot Mode - в положении "H0"

Куда еще бубном ударить надо? До сих пор все работало!!! Пока не потребовалась off-chip SRAM...

Подскажите, куда рыть, пока у меня совсем крыша не съехала!
Заранее - спасибо!



Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

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

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru