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.

AWR1843BOOST: Runing to 'cossp()' function of 'MATHLIB' library causes the program freeze

Part Number: AWR1843BOOST
Other Parts Discussed in Thread: AWR1843, IWR6843AOPEVM

Hi:

I want to implement the Vital Signs Detect on the AWR1843BOOST EVM so I refer to the '68xx Vital Signs' project of TI industrial Toolbox.

When I run the code, it freeze at the "cossp()" function.

I set a breakpoint that the program stop at the "cossp()" function to check the input value, the input value is '0.0634665191'

When I continue to run it, the code freezes.

This is the runing log:

[Cortex_R4_0] Debug:  SOC Module Initialization was successful
Debug: SOC_waitBSSPowerUp was successful
Debug: Launched the Initialization Task
Debug: Command UART open Success
Debug: Logging UART open Success
Debug: mmWave Control Initialization was successful
Debug: Wait MMWave module to sync ...........
Debug: Wait MMWave module to sync ...........
Debug: Wait MMWave module to sync ...........
[C674X_0] Debug:  SOC Module Initialization was successful
[Cortex_R4_0] Debug: Wait MMWave module to sync ...........
[C674X_0] Debug: MMWDemoDSS mmWave Control Initialization succeeded
Debug: Data path initial success
[Cortex_R4_0] Debug: mmWave Control Synchronization was successful
[C674X_0] Debug: VitalSignsDet DSS initTask exit
[Cortex_R4_0] Debug: Vital signs detection data path initial success
Debug: VitalSignsDet MSS initTask exit
Debug: Launched the openSensor()
Debug: Launched the rlSetChannelCfg()
Debug: Launched the rlSetAdcOutCfg()
Debug: Launched the rlSetLowPowerModeCfg()
Debug: rlRfSetLdoBypassConfig Success
Debug: mmWave open success
Debug: Configuration the profile success
Debug: Configuration the chirp success
Debug: Configuration the Frame success
[C674X_0] Debug: VitalSignsDet_dataPathPaserCtrlConfig() success !
Debug: VitalSignsDet_dataPathVitalSignsInit() run complete !
Debug: VitalSignsDet_dataPathConfigBuffers() run complete !
Debug: VitalSignsDet_dataPathComputeDerivedConfig() success !
Debug: VitalSignsDet_dataPathParserADCBufCfg() run Success !
Debug: VitalSignsDet_dataPathADCBufConfig() Success !
A0=0x3d81fabc A1=0x1
A2=0x816584 A3=0x3f57
A4=0x7ee7f0 A5=0x0
A6=0x0 A7=0x0
A8=0x0 A9=0x7f0d34
A10=0x7fbe84 A11=0x815df8
A12=0x0 A13=0x80fce8
A14=0x1 A15=0x7fabd4
A16=0x7fd7f4 A17=0x40000000
A18=0x4000 A19=0x0
A20=0x0 A21=0x4000
A22=0x4783 A23=0x0
A24=0x0 A25=0x0
A26=0xb274b13f A27=0xe555d3dc
A28=0x0 A29=0xfffffc00
A30=0xb1a09 A31=0x0
B0=0x0 B1=0x0
B2=0x0 B3=0x7e8726
B4=0x3fb00000 B5=0x3fb00000
B6=0x2c682432 B7=0x1
B8=0x9ae07e88 B9=0x3ae59d21
B10=0x0 B11=0x0
B12=0x0 B13=0x0
B14=0x816fa0 B15=0x80fd10
B16=0xfffffc01 B17=0x3dcccccd
B18=0x80000000 B19=0x1df2f138
B20=0xf779ffdd B21=0xffeeea9e
B22=0xf B23=0x0
B24=0xbd753fef B25=0x62c5d40e
B26=0xf1b5c66d B27=0x7611f6b9
B28=0x0 B29=0xffffffff
B30=0x0 B31=0xe007e0
NTSR=0x1020f
ITSR=0x20f
IRP=0x7fffe0
SSR=0x0
AMR=0x0
RILC=0x0
ILC=0x0
Exception at 0xe007e0
EFR=0x2 NRP=0xe007e0
Internal exception: IERR=0x11
Instruction fetch exception
Resource conflict exception
{module#23}: line 256: error {id:0xb0000, args:[0xe007e0, 0x80fd10]}
xdc.runtime.Error.raise: terminating execution

This is the code:

void VitalSignsDet_dataPathGenWindow(void *win,
                        uint32_t windowDatumType,
                        uint32_t winLen,
                        uint32_t winGenLen,
                        int32_t oneQformat,
                        uint32_t winType)
{
    uint32_t winIndx;
    int32_t winVal;
    int16_t * win16 = (int16_t *) win;
    int32_t * win32 = (int32_t *) win;

    float eR = 1.;
    float eI = 0.;
    float e2R = 1.;
    float e2I = 0.;
    float ephyR = 0.;
    float ephyI = 0.;
    float e2phyR, e2phyI;
    float tmpR;

    float phi = 2 * PI_ / ((float) winLen - 1);


    ephyR  = cossp(phi);
    ephyI  = sinsp(phi);

    e2phyR  = ephyR * ephyR - ephyI * ephyI;
    e2phyI  = 2 * ephyR * ephyI;


    if(winType == MMW_WIN_BLACKMAN)
    {
        //Blackman window
        float a0 = 0.42;
        float a1 = 0.5;
        float a2 = 0.08;
        for(winIndx = 0; winIndx < winGenLen; winIndx++)
        {
            winVal = (int32_t) ((oneQformat * (a0 - a1*eR + a2*e2R)) + 0.5);
            if(winVal >= oneQformat)
            {
                winVal = oneQformat - 1;
            }
            if (windowDatumType == FFT_WINDOW_INT16)
            {
                win16[winIndx] = (int16_t) winVal;
             }
            if (windowDatumType == FFT_WINDOW_INT32)
            {
                win32[winIndx] = (int32_t) winVal;
             }
            tmpR = eR;
            eR = eR * ephyR - eI * ephyI;
            eI = tmpR * ephyI + eI * ephyR;

            tmpR = e2R;
            e2R = e2R * e2phyR - e2I * e2phyI;
            e2I = tmpR * e2phyI + e2I * e2phyR;
        }
    }
    else if (winType == MMW_WIN_HANNING)
    {
        //Hanning window
        for(winIndx = 0; winIndx < winGenLen; winIndx++)
        {
            winVal = (int32_t) ((oneQformat * 0.5* (1 - eR)) + 0.5);
            if(winVal >= oneQformat)
            {
                winVal = oneQformat - 1;
            }
            if (windowDatumType == FFT_WINDOW_INT16)
            {
                win16[winIndx] = (int16_t) winVal;
            }
            if (windowDatumType == FFT_WINDOW_INT32)
            {
                win32[winIndx] = (int32_t) winVal;
            }
            tmpR = eR;
            eR = eR*ephyR - eI*ephyI;
            eI = tmpR*ephyI + eI*ephyR;
        }
    }
    else if (winType == MMW_WIN_RECT)
    {
        //Rectangular window
        for(winIndx = 0; winIndx < winGenLen; winIndx++)
        {
            if (windowDatumType == FFT_WINDOW_INT16)
            {
                win16[winIndx] =  (int16_t)  (oneQformat-1);
            }
            if (windowDatumType == FFT_WINDOW_INT32)
            {
                win32[winIndx] = (int32_t) (oneQformat-1);
            }
        }
    }
}

Project products version:

Questions:

  1. What could be the problem causing the code to freeze?
  2. How should I interpret an error code like this?

A0=0x3d81fabc A1=0x1
A2=0x816584 A3=0x3f57
A4=0x7ee7f0 A5=0x0
A6=0x0 A7=0x0
A8=0x0 A9=0x7f0d34
A10=0x7fbe84 A11=0x815df8
A12=0x0 A13=0x80fce8
A14=0x1 A15=0x7fabd4
A16=0x7fd7f4 A17=0x40000000
A18=0x4000 A19=0x0
A20=0x0 A21=0x4000
A22=0x4783 A23=0x0
A24=0x0 A25=0x0
A26=0xb274b13f A27=0xe555d3dc
A28=0x0 A29=0xfffffc00
A30=0xb1a09 A31=0x0
B0=0x0 B1=0x0
B2=0x0 B3=0x7e8726
B4=0x3fb00000 B5=0x3fb00000
B6=0x2c682432 B7=0x1
B8=0x9ae07e88 B9=0x3ae59d21
B10=0x0 B11=0x0
B12=0x0 B13=0x0
B14=0x816fa0 B15=0x80fd10
B16=0xfffffc01 B17=0x3dcccccd
B18=0x80000000 B19=0x1df2f138
B20=0xf779ffdd B21=0xffeeea9e
B22=0xf B23=0x0
B24=0xbd753fef B25=0x62c5d40e
B26=0xf1b5c66d B27=0x7611f6b9
B28=0x0 B29=0xffffffff
B30=0x0 B31=0xe007e0
NTSR=0x1020f
ITSR=0x20f
IRP=0x7fffe0
SSR=0x0
AMR=0x0
RILC=0x0
ILC=0x0
Exception at 0xe007e0
EFR=0x2 NRP=0xe007e0
Internal exception: IERR=0x11
Instruction fetch exception
Resource conflict exception
{module#23}: line 256: error {id:0xb0000, args:[0xe007e0, 0x80fd10]}
xdc.runtime.Error.raise: terminating execution