Good Evening,
I have an application running on the TI8148 that uses the V4L2 APIs to capture and display video. I need to pass those buffers onto DSP accelerated algorithms that I'm building with C6EZRun-Lib and calling from my main application on the ARM.
The only problem is that I can't find a way to get my buffers into the DSP space.
If I directly pass the user-space pointer, I'm presented with a "C6RUN_SHAREDMEM_lookupBuffer() failed for pointer ..." error. I have read the documentation on the tool (http://processors.wiki.ti.com/index.php/C6RunLib_Documentation#Buffer_Passing_using_C6RunLib) and noticed that the memory buffers need to be contiguous. They are, as they have been allocated from the display driver space per the "saLoopBackScale" demo.
I have also tried allocating the V4L2 buffers using C6RUN_MEM_malloc() instead of the mmap from the display driver, but that results in some M3 VPSS malfuctions that trashes the system.
I have a temporary work around by allocating another C6RUN_MEM_malloc() buffer and copying my V4L2 buffer into it prior to every DSP algorithm call. This seems to make it across but as you might imagine, the performance takes an unacceptable hit.
Any suggestions or insight is greatly appreciated! I'm in the 11th hr on this one and desperately need a better resolution!
Thank You!