Dear All, I'm confused with the DAT module of DSP/BIOS. I'm using C6415 chip. According to the help, before begin any DAT_copy / DAT_fill tranfer, the DAT_open(...) must be called to allocate an exclusive channels for the module. Is that means the DAT module only use that particular channel (only one exclusive channel) in it's operation ? Let say I have a few DAT_copy calls like this : xfrid1 = DAT_copy(DAT_2D1D, srcPtr1, dstPtr1, byteCnt1); /* 1st DAT Operation */ xfrid2 = DAT_copy(DAT_2D1D, srcPtr2, dstPtr2, byteCnt1); /* 2nd DAT Operation */ xfrid3 = DAT_copy(DAT_2D1D, srcPtr3, dstPtr3, byteCnt1); /* 3rd DAT Operation */ xfrid4 = DAT_copy(DAT_2D1D, srcPtr4, dstPtr4, byteCnt1); /* 4st DAT Operation */ xfrid5 = DAT_copy(DAT_2D1D, srcPtr5, dstPtr5, byteCnt1); /* 5nd DAT Operation */ xfrid6 = DAT_copy(DAT_2D1D, srcPtr6, dstPtr6, byteCnt1); /* 6rd DAT Operation */ ... That means the DAT_copy(s) actually happens in a serial (sequencial) manner? The 1st DAT Operation starts. The 2nd DAT operation will not start before the 1st DAT operation complete ? Then, after the 2nd DAT operation completes, the 3rd DAT Operation will begin ? And so on ? Are the DAT requests being served as "first come first serve basis" ? Is it possible the DAT_copy(s) happens in parallel ? (maybe more than one channel is used ?) According to the help file, it is possible to have multiple DAT requests pending because of hardware request queues. What is the limit to the pending / queues ? What will happens if the queue is full ? The program will be blocked until there is free slot in the hardware queue ? Thanks for advices. -- Beh CS |
question on DAT module
Started by ●April 9, 2003