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.

Camera Synchronziation on DM8148

Dear Sir,

   On Dm8148, irregular camera horizontal sync/ vertical sync/ pixel clock will let the ISS module and M3 break down.

   Please give us a hand.

 Sincerely,

Frank

  • Frank,

    Can you explain the problem in little detail? Can you also share the logs?

  • Dear Thomas,

     

      Camera Plug & Play test and ESD test will cause irregular camera horizontal sync/ vertical sync/ pixel clock.

     The three irregular signals will let the ISS module and M3 break down.

     Three kinds of error will happen. They are Segmentation fault/ delete camera link and Unhandled exception.

     The first two logs are attached, and I will attach the Unhandled exception log later.

     

    Thanks a lot,

    Frank0815.delet camera link.log4426.Segmentation.log

     

     

  • Frank,

    I couldn't figure out much from the logs.

  • Dear Thomas,

    Sorry, this issue won’t appear the error message and just hang.

    We trace the code and find it will hang in the following position

    ----------------------------------------------------

    Directory => ti/psp/iss/drivers/alg/2A/src

    File name => issdrv_alg2AApi.c

    Function => function “IssAlg_capt2ADeInit(Iss_2AObj *pObj)”

    Program => free((void*)pObj->h3aBufAddr[1]);

    -----------------------------------------------------------------------------

    Please give me a hand.

    Thanks

    Frank

  • Frank,

    I believe its hanging the during the free function call. I haven't seen the code yet, but can you try printing the value of the variable pObj->h3aBufAddr[1]? Can you just comment out the free function and see whether any difference in behavior is there or not?

  • Dear Thomas,

    1. The variable of pObj->h3aBufAddr[1] is 9de1ddc0. The value is correct.

    2. When the function is commented out. For normal case is ok, but in irregular synchronization case may occur assertion.

    Could you reproduce the irregular sync issue on your site?

  • Frank,

    I don't have the setup here to try it out. Can you check the code and let me know how the h3aBufAddr[1] is allocated, used and freed? 

    If you comment out free() call, where is the assertion occurring?

  • Dear Thomas ,

    We trace the code and find it will hang in the following position

    ----------------------------------------------------

    Directory => ti/psp/iss/drivers/alg/2A/src

    File name => issdrv_alg2AApi.c

    Here it will allocate a buffer for h3aBufAddr[1] below:

    Function => function “IssAlg_capt2AInit(Iss_2AObj *pObj)”

    Program => pObj->h3aBufAddr[1] = (UInt32)memalign(64,pObj->h3aBufSize * 2);

     

    Here it will free  buffer for h3aBufAddr[1] but failed below: 

    Function => function “IssAlg_capt2ADeInit(Iss_2AObj *pObj)”

    Program => free((void*)pObj->h3aBufAddr[1]);

    thanks a lots

    best regards

  • Steven,

    Give me some time to check the complete code. I'll get back to you shortly. Appreciate your patience.

  • Steve,

    Can you statically allocate the buffers using an array and see whether it makes any difference? Make sure that you refer to a mostly free location according to the memory map. 

    Steven Huang said:

    pObj->h3aBufAddr 

    Also can you confirm which line of code exactly gets stuck? Is it free function call or IssAlg_capt2ADeInit() call?