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.

IWR6843ISK-ODS: The radar has been stopping run sometimes when send message from MSS to DSS.

Part Number: IWR6843ISK-ODS

Hi,

  I sent the target list information from MSS to DSS in overhead people counting demo. The radar seems crash (no points cloud output from UART port) sometimes. I don't know what's happen. Can you please tell me how to debug this case or give the hint to find out the reason?

_Bool SendInfo2DSS(){
  MmwDemo_message message;
  memset((void *)&message, 0, sizeof(MmwDemo_message));
  message.type = MMWDEMO_MSS2DSS_TARGET_INFO;

  if (MmwDemo_mboxWrite(&message) == 0){
    return 0;
  }else{
    return -1;
  }

}

Thanks.

C.W.

  • Hi C.W.

    I've asked an expert to look into this and we should have an answer for you sometime next week.

     

    Cheers,

    Akash

  • Hi C.W.

    Radar typically crashes for 2 reasons:

    1. Real Time MIPS - the device is on a tight schedule to process the radar data - if it takes too long, the DSS calls an assert, halting execution.  If the message function on the DSS side is taking a long time to complete, this could be the reason. If this happened, you would still hear the high-pitched squeaking from the device.  An easy check is to increase the frame time.
    2. Memory Allocation - if you allocate memory that isn't available, the device will usually crash.  You should see this in debug mode.

    It is always helpful to run the device in debug mode, as the console will report the site of the crash.

    Regards,

    Justin

  • Hi Justin,

      I got the error message in debug mode. I think it's caused by DSS crashed. The DSS can't handle the message "MMWDEMO_MSS2DSS_DETOBJ_SHIPPED".  There is no available information in console except "message error" in console.

    "[Cortex_R4_0] Error: Mailbox send message id=-18022393 failed"

    1. Do you have other suggestions to debug this issue in debug mode?

    2. The MSS is alive. Is it possible to restart DSS alone?

    MSS

                                memset((void *)&message, 0, sizeof(MmwDemo_message));
                                message.type = MMWDEMO_MSS2DSS_DETOBJ_SHIPPED;
                                if (MmwDemo_mboxWrite(&message) != 0) {
                                    System_printf ("Error: Mailbox send message id=%d failed \n", message.type);
                                }

    Thanks.

    C.W

  • HI C.W

    1. Have you defined this message type in both the MSS and DSS?  Please check the mailbox initialization to make sure messages can be passed to MSS and to DSS.
    2. You can restart DSS - there is a CPU Reset button in CSS when running debug mode - it looks like a black IC. However, behavior may be undefined, so it is likely that the cores will crash again after this.

    Regards,
    Justin

  • Hi Justin,

    Have you defined this message type in both the MSS and DSS?  Please check the mailbox initialization to make sure messages can be passed to MSS and to DSS.

    ==> Yes, the message type "MMWDEMO_MSS2DSS_DETOBJ_SHIPPED" is already defined in MSS and DSS. You can find it in overhead people counting demo.

    Thanks.

    C.W.

  • Hi C.W.

    Please check the mailbox initialization as well. Ensure that two way communication is enabled.

    Regards,

    Justin

  • Hi Justin,

       The two way communication is enabled.

    Thanks.

    C.W.

  • Hi C.W.

    Please check the location in the DSS where the message is received - it sounds like the DSS is crashing and unable to confirm to the MSS that the message is received.

    Regards,

    Justin

  • Hi Justin,

      We changed to send the message (MMWDEMO_MSS2DSS_TARGET_INFO) before the message (MMWDEMO_MSS2DSS_DETOBJ_SHIPPED) in MSS part. It works well, not happen crash. Can you please provide more details about the behavior?

        MmwDemo_message message;
        memset((void *)&message, 0, sizeof(MmwDemo_message));
        message.type = MMWDEMO_MSS2DSS_TARGET_INFO;
    
        if (MmwDemo_mboxWrite(&message) == 0){
            return 0;
        }else{
            return -1;
        }
    
        ...
    
        memset((void *)&message, 0, sizeof(MmwDemo_message));
        message.type = MMWDEMO_MSS2DSS_DETOBJ_SHIPPED;
        if (MmwDemo_mboxWrite(&message) != 0) {
            System_printf ("Error: Mailbox send message id=%d failed \n", message.type);
        }

    Thanks

    C.W.