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

Отправлено Vlad. 21 сентября 2001 г. 16:25
В ответ на: Лучше ли компилятор C у VDSP++2.0, чем у VDSP 7.0? отправлено Евгений 21 сентября 2001 г. 14:09

Конечно лучше. То, что есть некоторые глюки, так это беда всех новых Си-компиляторв. Кстати, глюк с оверлеем DMOVLAY я довольно просто решил. Вот пример, простой Си-программы, которая прекрасно работает.
В ней используется прерывание от таймера, по которому инвертируется флаг FL0. (Если будете пробовать компилить этот файл, не забудьте подключить в проект *.ldf файл, например ADSP-2185.ldf и в строках #include нужны угловые скобки, так как в конфе они не показываются).

#include signal.h
#include misc.h

#define PmPage(x) { asm ( "PMOVLAY=" #x ";" ); }
#define DmPage(x) { asm ( "DMOVLAY=" #x ";" ); }

void InitDSP(void);
void hndlTimer (int sig);
void toggle_flag(void);

int timer_set(unsigned int tperiod, unsigned int tcount, int tscale);
unsigned int timer_off(void);
unsigned int timer_on(void);

main()
{
DmPage(0); // Set DM overlay to 0
PmPage(0); // Set PM overlay to 0

asm("AX1=I5;"); // Save I5
asm("I5=0x0d8;"); // Load in I5 adress of error
asm("AX0=0x3400;"); // Load code of DMOVLAY=0
asm("PX=0x0F;");
asm("PM(I5,M5)=AX0;"); // Save DMOVLAY=0 in adress of error
asm("I5=AX1;"); // Restore I5

InitDSP();

while (1)
{;
}

}

void InitDSP(void)
{
timer_off();
timer_set(1000,0,0);
interrupt(SIGTIMER, hndlTimer);
timer_on();
}

void hndlTimer (int sig)
{
toggle_flag();
}

void toggle_flag(void)
{
asm("toggle FL0;");
}



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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru