TI E2E Community
Digital Signal Processors (DSP)
DaVinci™ Video Processors
DM64x DaVinci Video Processor Forum
Using DAT_copy/DAT_wait and CACHE_ APIs on DM6437/DM648 processors
My algorithm is using DAT/CACHE APIs and ported to DM642 platform. Now, I am trying to run the same library on DM6437/DM648 process but it gettting stuck in DAT_wait and not coming out of it.
I have linked in cslDM642.lib (Available
at C:\CCStudio_v3.3\C6000\csl\lib) to get these APIs on DM6437/DM648 platforms . Should I be able to use DM642 lib with DAT/CACHE APIs on these platforms?
Unfortunately the CSL that was usable on the DM642 platform is not available for the DM6437 or DM648 platforms, this being said the cslDM642.lib is not compatible. Although the code in it will run as C64x+ is backwards compatible with C64x, it will be trying to reference registers that do not exist and so it will not work correctly.
The DAT module is not entirely replaced, but the closest option is the EDMA3 driver included with the EVM software, the application note below gives some examples of its usage. http://focus.ti.com/dsp/docs/dspsupporttechdocsc.tsp?sectionId=3&tabId=409&familyId=1301&abstractName=spraan4a
The CACHE APIs have been replaced by the DSP/BIOS BCACHE API which is discussed in section 2.2 of the BIOS API Guide available below. http://focus.ti.com/lit/ug/spru403o/spru403o.pdf
Thanks! I can replace DAT/CACHE with DMAN3/EDMA3 implementation. For
DM6446, we used to create IDMAFXNS function table and provide _dmaChangeChannels,
_dmaGetChannelsCnt, _dmaGetChannels and _dmaInit functions. They were getting
called by Codec Engine framework automatically on CODEC initialization and
provide the appropriate handle to operate EDMA3 channels. I am really curious
that how I initialize EDMA3 channels for my algorithm as its instance
initialization is not going be done by Codec Engine frame work. On DM6437, the
application is directly calling the APIs exposed by our algorithm. Like, our
algorithm has XX_Initialize(), XX_GetMemoryReq(), XX_Process().
Would you please suggest me a solution for initializing and granting the
IDMA3 channel of my algorithm without Codec Engine frame work?
Does following piece of information will have an affect on the answer of
previous questions: there might be other algorithms running on DM6437, which
are Codec Engine framework compliant i.e. xDM compliant.
I was looking at some samples and I might have the answer but I am not sure
about it. I found out that one could call DMAN3_grantDmaChannels, which
would do exactly the same thing what Codec Engine frame work do. Correct me if
I am wrong?
It’s little complicated but many of us want to use the algorithm library
developed for DM642 platform with minimal change on DM6437 or DM648 or any
single DSP core DaVinci processor. Appreciate your prompt response on
previous post and hoping the same.
Thanks once again!
I am not the most familiar with the DMAN3, but I believe you can use it with just framework components as opposed to the entire codec engine. The document below goes into some detail about using the DMA with framework components (including DMAN3), which may be of some help in this case as it also discusses the DMAN3_grantDmaChannels function you reference. http://focus.ti.com/lit/an/spraag1a/spraag1a.pdf
You may also find some handy information on the TIexpressDSP Wiki site. http://tiexpressdsp.com/wiki/index.php?title=Framework_Components_FAQ
I am curious why you are avoiding using Codec Engine, as it sounds like your application could benefit from it?
BernieThompsonI am curious why you are avoiding using Codec Engine, as it sounds like your application could benefit from it?
I would assume (as mentioned) they want to use DM642/6446 code without complete rewrites (or changes that would effectively fork their development,meaning having to separately maintain both). I can certainly understand this wish. Sometimes the code might not fit into the requirements for Codec Engine, also.
Yes you are right, many engineer like me, want to migrate the well runing project from DM642 to DM648, but find there is a big trap, because DM648 don't use CSL API any more.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.