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.

AWRL1432: Programme stuck in MMW_DEMO sequence

Part Number: AWRL1432
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hi expert

We have a programme base on mmw_demo example.

Our project has three freertos tasks. The highest-priority task is dpc, and the lowest-priority task is responsible for the uart output message.

Now we need to upgrade the uart output message method from the previous CPU-occupying output to EDMA output in ISR. 

Programme run normally but will stuck in1-2 hours.

After Investigation,Programme stuck in DPU_Aoa2dProc_process::SemaphoreP_pend(&obj->hwaDoneSemaHandle, SystemP_WAIT_FOREVER) function,also assert because of return value of DPU_CFARProcHWA_process function.

The current suspicion point is that there is a conflict between the EDMA of HWA and that of uart. Could you please provide an analysis of the possible causes or determine the direction, or when using EDMA resources simultaneously, what configuration items should be avoided.

here's our syscfg:

expect for your response,s

thanks!

  • Supplementary note: uart receives 71 bytes of data via EDMA every 100ms and send 680 bytes of data to the uart EDMA after receiving the complete data. The entire process is carried out in the edma ISR

  • Hi,

    Thanks for posting your question over E2E. Please allow our software expert to respond in a working day or two. 

  • one more request : if error happen(dpc sequence stuck), is there any info that I can check when loading symbol into the project?

  • one more question: 
    According to my understanding, when UART EDMA is connected to EDMA_APPSS_A, it has already separated from the EDMA used by hwa in terms of hardware resources. Could you please help confirm and determine whether the EDMA resource conflict is causing the problem which dpc task can not get hwa sem?

  • Hi, Joey:

    Sorry for the delay, I was just coming back from an international trip. 

    Can you provide me with more background for this work?  What end project are you trying to work on?  For example, gesture recognition, vital sign and corner radar for blind spot detection.  

    Best,

    Zigang 

  • Hi Zigang
    Our radar is for blind spot detection. 
    After a period of investigation,We found that probabilistically, the hwa EDMA interrupt failed to take effect or the uart EDMA interrupt failed to take effect,So we suspect that there is a resource conflict with EDMA configration.

    our AFE suggested distinguishing the param ids of EDMA0/1. Therefore, we made the following configuration:
    hwa EDMA:
    ...

    uart EDMA:

    ...

    we have cheked hwa edma use max paramID is 65 when Initialization.

    is there any suggest of how to slove this problem or what can I do when do when reproduce this problem(maybe what varble can I read when attach soc)?


    expect for your reply.

  • syscfg is blow:

    uart EDMA

    hwa EDMA

    other edma config is default.

  • HI, Joey:

    Thank you for the information.   We usually allocate EDMA channel manually, and never used sys config to allocate EDMA.  

    1) I doubt that the compiler will check any conflict in EDMA resource allocation.  It will be good for you to check.   

    2) Before introducing your UART EDMA, all the EDMA are happening sequentially.   There is no overlap.  But with your change, the UART EDMA could overlapped with HWA EDMA in time.   You can try to increase the frame time dramatically, and see whether your problem goes away.   In the time of overlap, UART EDMA need to set to lower priority compared to HWA EDMA.  

    By the way, is your project code based on some demo from TI.  If so, please let us know which demo this project is based on.

    Best,

    Zigang

  • Hi Zigang

    Thanks for your reply.

    1.According to my investigation, when initializing UART EDMA using sdk code, the specific paramID to be used will not be specified. Only the available paramID will be specified during initialization.Based on your suggestion, we will use handwritten code instead of SDK code.Can you provide code example of allocate EDMA channel manually?

    2.It is suspected to be related to EDMA resources conflict because it takes sometimes1-2hours , sometimes 10 to 12 hours to reproduce “EDMA interrupt cannot be triggered” during the testing process

    3.Demo is base on "awrl1432_adas_bsd_demo_v3.2"

    Can you give some example code base on 1 and 3?  especially how to chose all the param of Uart
    Handle to separate hwa EDMA config(our hwa EDMA config totally use config in demo).

    Thank you very much and look forward to your reply.
  • Hey Joey,

    Thanks for providing this information. I'm looping in our ADAS team to support further here. Please give them a day or two to respond.

    Regards,

    Kristien

  • Hi,

    First you will need to update the demo you are using to version 4.1. In version 3.2 we have identified some issue with the frame reconfiguration.

    DO you have a TI FAE contact that can provide you the release?

    thank you
    Cesar

  • Hi Cesar

    Thanks for your reply.

    Can you describe what "issue with frame reconfiguration" ? we have verify Demo 3.2 pass in our radar. If no big issue influnce radar running , we will still use demo3.2. So please tell me issue first in details, thanks.

  • Hi 

    Thanks for inviting Cesar to support our issue.

    I think maybe you can provide some demo code of uart EDMA config and use base on our last conversation first, it doesn't conflict with which demo version I use. If there are any questions, please contact me early.

    expect for your reply.

  • Hi,

    There is an example of uart and dma in the SDK. Could you please look at it?

    C:\ti\MMWAVE_L_SDK_05_05_03_00\examples\drivers\uart\uart_echo_dma

    Thank you
    Cesar

  • Hi Ceasr
    In fact, I have already used the code in the demo, but according to my conversation with zigang Yang, I need configration UART EDMA which is "allocating EDMA channel manually" instead of syscfg code. Can you prove some demo code?
    expect for your reply

  • HI,

    There were several issues with Demo 3.2

    First, we noticed that when we run the demo for 22.5 hours, the demo would hang pending on the Range Processing to complete semaphore. It is always around the same frame number +/- 10 frames. When the frame reconfiguration was disabled this issue did not happen.

    Another issue we had was related to incorrect Vmax extension which created ghost images.

    Thank you
    cesar

  • Hi Ceasr
    In fact, I have already used the code in the demo, but according to my conversation with zigang Yang, I need configration UART EDMA which is "allocating EDMA channel manually" instead of syscfg code. Can you prove some demo code?
    expect for your reply

    Hi Joey,

    I talked about with Zigang about this. Here is our conclusion: Initializing the EDMA using sysconfig is not wrong as long as we make sure that the sysconfig configuration does not use EDMA channels which are allocated manually in the BSD Demo. 

    You have shared in previous communication that the EDMA channel used by the UART is different from the EDMA channels used by the HWA. Also, if the code runs for 1 hour than this is not an issue.

    I think the first step is to use the new release 4.1. If the issue still happens, then you would need to provide us your code changes so we can reproduce the issue.