[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Re(2): Problem with external dma and linked lists.



If you don't set eop, you will not get the eop interrupt and 
you will not advance the CH4_FIRST pointer to the next packet 
(i.e. to NULL if you only have one). You will however process 
the DMA data buffer and send it out to the external DMA. 

If you choose the approach to skip eop in the output descriptors,
you could use e.g. R_DMA_CH4_DESCR and the dma4_descr interrupt /
DMA descriptor intr bit to track the DMA progress.
Another approach could be to use eop in the descriptors but restart
the external DMA channel when you get the dma4_eop interrupt.

Best regards 

Per Zander

On Mon, 5 May 2003, Arne Bockholdt wrote:

> per.zander@xxxxxxx.com schreibt:
> >An eop in the output DMA descriptor will cause the external DMA channel 
> >to stop after the descriptor has been fully processed. So, if 
> >you have eop set in the first descriptor, the external DMA channel
> >will stop after the first descriptor. 
> >
> >One solution could be to not set eop in the output DMA descriptor
> >(and wait is not needed either, although it does no harm).
> 
> I've tried that before but without the d_eop flag I get no interrupt at
> all and the data won't be processed, that means DMA
> >CH4 FIRST 
>  register is always !
> >= 
> 0 after the dma transfer, even with only one descriptor. 
> >
> 
> Dipl. Inform. Arne Bockholdt
> REA Elektronik GmbH
> Teichwiesenstr. 1
> 64367 Mühltal-Waschenbach
> Tel. +49 (0) 6154 / 638-115, Fax -195
> ABockholdt@xxxxxxx.de
>