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.

RTOS/AWR1642: When I set a configuration,the AWR1642 crashed.

Part Number: AWR1642

Tool/software: TI-RTOS

If I set Frame-Periodicity-in-ms -> 600 and set guiMonitor-> -1 1 1 1 0 1 1.
The AWR1642 can work and display is OK.

When I change Frame-Periodicity-in-ms -> 500.
The AWR1642 crashed, it also can not receive configuration anymore.

Is it because the work time by MmwDemo_mboxReadTask is not enough to deal with?
Or the Chirp Cycle Time is not enough to deal with?

  • Hi,

    Yes, this could be one of the reasons why the crash occurs. There is probably not enough time for the UART to transmit all the data selected in guiMonitor.

    The mmWave SDK demo uses a flag to wait for the UART transmission to complete before starting the next frame. If the UART transmission is not completed by the beginning of next frame, the code will execute an exception and the demo will crash.

    Thank you
    Cesar
  • Hello Cesar,

    How to stop it from crashing?
    When the UART transmission is not completed by the beginning of next frame?
    Or is there any method which can let it restart when it crash?

    Best regards,
    JuiYang
  • Please let us know what type of application you are working on and what would you like to accomplish with AWR1642

    Thank you
    Cesar
  • Hello Cesar,

    I use the MMWave Demo with AWR1642.

    When the UART transmission is not completed by the beginning of next frame,
    it will crash.
    I hope we can do the following.

    1. Is there a way to avoid the crash?
    or
    2. When it crash , it will restart itself.




    Best regards,
    JuiYang
  • I think that in order to make progress with your project you will need to understand how the changes impact the behavior of the mmWave demo.

    Please search other threads in this forum about the chirp configuration.



    You can also try to comment out the check that the UART transmission is completed. - see below.

    static void MmwDemo_dssFrameStartIntHandler(uintptr_t arg)
    {
    if(gMmwDssMCB.state == MmwDemo_DSS_STATE_STOPPED)
    {
    gMmwDssMCB.stats.frameIntSkipCounter++;
    return;
    }

    if(gMmwDssMCB.state == MmwDemo_DSS_STATE_STOP_PENDING)
    {
    /* stop the clock as the DSP will be stopped at the end of this active frame */
    Clock_stop(gMmwDssMCB.frameClkHandle);
    }

    /* Check if previous chirp processing has completed */
    // No longer check that the UART transmission completed
    // DebugP_assert(gMmwDssMCB.dataPathObj.interFrameProcToken == 0);
    gMmwDssMCB.dataPathObj.interFrameProcToken++;

    /* Increment interrupt counter for debugging purpose */
    gMmwDssMCB.stats.frameStartIntCounter++;

    /* Post event to notify frame start interrupt */
    Event_post(gMmwDssMCB.eventHandle, MMWDEMO_FRAMESTART_EVT);
    }

    Thank you
    Cesar