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
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.
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
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?
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?