Forums

How to use couple many QDMA's?

Started by ramaa June 29, 2007
Hi everyone,

I am working in developing AV player in DM642 environment and Using the
QDMA option for moving pixel data between onchip and external memory.The
QDMA deals with now 8 bit element size.I had seen some where in the TI
manuals that use of 32 bit element size will lead to optimization.But all
is needed to transfer 8 bit pixel data for processing..Then how to
optimize the data transfer?

On finding the CPU usuage , the display shows 100%.IS there any way to
list QDMA's or like chaining two or more QDMA instants and decrease the
processing time? 

Kindly someone let me know the possibilities to effectively use QDMA ..

I am not an expert in c64x stuff.It will be of a great help if someone
shows off good start for me to tackle this..

Thanks in advance,

Rama
ramaa wrote:
> Hi everyone, > > I am working in developing AV player in DM642 environment and Using the > QDMA option for moving pixel data between onchip and external memory.The > QDMA deals with now 8 bit element size.I had seen some where in the TI > manuals that use of 32 bit element size will lead to optimization.But all > is needed to transfer 8 bit pixel data for processing..Then how to > optimize the data transfer? > > On finding the CPU usuage , the display shows 100%.IS there any way to > list QDMA's or like chaining two or more QDMA instants and decrease the > processing time? > > Kindly someone let me know the possibilities to effectively use QDMA .. > > I am not an expert in c64x stuff.It will be of a great help if someone > shows off good start for me to tackle this.. > > Thanks in advance, > > Rama
If your pixel data is 8-bit then you should set the QDMA size to 32-bit and do num_pixels/4 transfers. That way the QDMA will better utilize the internal buses when transferring data. If you're calling DAT_copy to utilize the QDMA make sure that your code does other processing while the QDMA is doing the transfer. If your code sits there waiting for the QDMA to complete then you might as well be doing a memcpy. This generally takes a little planning. That is, you want to start the QDMA fetching data for your next loop iteration while you are doing the processing for the current loop iteration. This generally involves being double-buffered for your processing.