This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Problem in VICP

Other Parts Discussed in Thread: CCSTUDIO

Hi

 As per my previous posts I tried to implement alpha blending with VICP for 422 planar format by making some changes in CIPS_scalararrayOP(). I followed the same steps which i discussed in my previous posts. I am able to do alpha blending properly but on a standalone code. I mean i modified CIPS_scalararrayOp() and now i can perform blending. Now the problem is when i integrate this with my application its not working.

I provided my source and destination buffers. Its filling all zeros in my destination buffer. Problem is i cannot debug VICP since VICP buffers are not viewable.

I checked all possible sources of errors. Following things I have already tried.

1. Pointers to source and destination buffers and the corresponding strides.

2. Processing buffer size( should be within the limit).

3. Input and output format.

4. I guess DMA is also woking fine since i am using the same code as that of standalone tested application.

                              Since my  destination buffer is filled with all zeros i think that Possible error is in DMA or cache. Can you please list some other error possiblities. Is there any method to debug? Please through some light on cache issuse, if any, which can cause such problem. Please note standalone application is woking fine so i feel issues are some buffer related.

Please help to fix the problem.

Thanks and Regards. 

Abhishek Singh

  • What else is happening in your system? What are the other SW modules you are using? Does the call to VICP return or does the application hang?
    Gagan

  • Also, look at C:\CCStudio_v3.3\c64plus\vicplib\doc\SPRUGN1B.pdf Section 3.8: Debugging Infrastructure. It details steps to debug the VICP processing. You can see for ex C:\CCStudio_v3.3\c64plus\vicplib\test\src\alphaBlend.c where the debug method is deatiled under the flag '#ifdef _DEBUG'
    Gagan

  • hi gagan

    1. Does the call to VICP return or does the application hang?

    The call to the VICP returns  successfully. The problem is my destination buffer shows all zeros. I mean it is updated with zeros.

    2.What are the other SW modules you are using?

    This is the only VICP operation i am performing in my module.

    3. What else is happening in your system?

    I am using Three video ports for display and one for capture. Initially i had problems with DMA channels conflicts of VICP and DSP because of which my cips_init() was failing. But i rectified the problem after my discussion with TI in my previous post.

     Moreover i am using CIPS_busy() for waits.

    Do you have any hint of the possible errors and suggest me some things which i can try out and can update you on the same.

    Thanks

    Abhishek

  • No i havent seen that functionality. I think its a block by block debug support. I just want some more experiments to be performed with the code to make it work if i get some input from TI. Right now i am not at my workplace. I will update you as soon i try that debug support.

    Thanks

  • Abhishek, Thanks for the information. I think it should be something minor. The debug steps I suggested do provide visibility into the internal memory of the VICP and the processing results for each block. It should give some good insight into what is happening and at what step the issue may exist.
    Note, you can also look at the DMA setup by putting a breakpoint in function _CPIS_setDmaInTransfers and _CPIS_setDmaOutTransfers. See the file: C:\CCStudio_v3.3\c64plus\vicplib\src\src_hw\_imgproclib.c. 

    Can you fill the external memory buffer with non-zero data and see if it is actually getting written over by DMA?
    When you use the above debug steps, can you verify that correct input data is being fetched by the DMA? Also, can you check if the result is correct and non-zero?
    Gagan

     

  • Hi Gagan

    Thanks once again. I fixed the problem. The problem was related to VICP buffer address. Actually the VICP buffers defined for DM642 in vicp_support.h are under the macro _DM648. The macro was not defined in my application where instead of using the VICP lib I added the corresponding .c and .h file to create alphablending api. After using debug support only i was able to analyse the problem.

    Thanks and Regards

    Abhishek Singh