[an error occurred while processing this directive]
|
Залинковали сам на себя зря - надо бы битик 1 в регистре OPT сбросить или залинковаться на заполненный нулями paRAM entry (в этом случае конфигурация канала обнулится по окончании трансфера)
На счет прерываний - вот простой примерчик (за базар полностью не отвечаю, но вроде бы так :-)):
//если нужны прерывания от канала...
extern "C" void my_handler(Uint32 arg, Uint32 eventId);
//разрешаем прерывания и цепляем EDMA Dispatcher
IRQ_reset(IRQ_EVT_EDMAINT);
IRQ_configArgs(IRQ_EVT_EDMAINT, (void *)&EDMA_intDispatcher,
0, IRQ_CCMASK_DEFAULT, IRQ_IEMASK_DEFAULT);
IRQ_enable(IRQ_EVT_EDMAINT);
//запрашиваем TCC у CSL
int tcc=EDMA_intAlloc(-1);
EDMA_intClear(tcc);
EDMA_intHook(tcc,&my_handler);
EDMA_intEnable(tcc);
//здесь ставим полученный tcc в opt.tcc, разрешаем прерывание
//от TCC (1 в opt.tccint), конигурим EDMA и заряжаем его. В конце трансфера будет
//прерывание
//если не нужны прерывания от канала и используем поллинг...
int tcc=EDMA_intAlloc(-1);
//ставим полученный tcc в opt.tcc, 0 в opt.tccint, конигурим EDMA и заряжаем его.
...
//в конце поллинг
while(EDMA_test(tcc));
E-mail: info@telesys.ru