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

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

Отправлено MALLOY 05 сентября 2006 г. 14:56

С АЦП и дут 6 каналовданных... я ниже у же писал но это не столь важно.
ШАманством нахожу фрейм первого канала и начинаю запихивать их в буфер что то типа этого
for (i=0;i<1280*6;i++)
{
while(McBSP_0.SPCR1.BITS.RRDY==0);
*ptr++ = McBSP_0.DDR1;
}
Все прекрастно работает, но когда вместо этого кода подставляеш запуск DMA то начинаю каналы прыгать таккое чувство что DMA пропускает несколько SYNC или McBSP их не генерирует по этому поводу полез в эрату и вот что прочитал и ничего не понял может кто растолкует что мне делать

McBSP May Not Generate a Receive Event to DMA When Data Gets Copied
From RSR to DRR

Details:
When there is heavy peripheral activity, and the DRR is read, a new receive interrupt might not
be generated to the DMA when data in the RSR is copied to the DRR. When this condition
occurs, the McBSP overwrites the DRR before the DMA had an opportunity to read its value.
This problem arises when the DRR read occurs at the “exact moment” the REVT needs to be
generated. The DRR servicing gets delayed if there are other heavy DMA channels or CPU
activities on the peripheral bus.

Workaround:
Optimize the peripheral bus access by the CPU and the DMA by carefully scheduling the DMA
and CPU activities so the DMA channel servicing the DRR is not stalled to the point where
new data is about the move in the DRR.

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

Ответы


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

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

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


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