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.

AWR1642BOOST-ODS: Instruction Fetch Exception

Part Number: AWR1642BOOST-ODS

Hello Sir/Ma'am,

I am trying to do floating Point FFT on AWR1642ODS. But i am getting Instruction Fetch Exception. 

I am suspecting some parts of memory may be getting corrupted but i can not find any way to find what is getting corrupted. 

Console Message:

[C674X_0] Debug: MMWDemoDSS Data Path init succeeded
Debug: MMWDemoDSS initTask exit
[Cortex_R4_0] Debug: MMWDemoMSS Received CLI sensorStart Event
[C674X_0] Heap L1 : size 14336 (0x3800), free 12288 (0x3000)
Heap L2 : size 49152 (0xc000), free 38592 (0x96c0)
Heap L3 : size 584824 (0x8ec78), free 300600 (0x49638)
A0=0x0 A1=0x0
A2=0x0 A3=0x7f0bd4
A4=0x0 A5=0x0
A6=0x0 A7=0x0
A8=0x0 A9=0x0
A10=0xc1d91d68 A11=0x41f37af0
A12=0x3e854100 A13=0x4294d9e0
A14=0x4287402a A15=0x453f2000
A16=0x0 A17=0x0
[Cortex_R4_0] xdc.runtime.Main: "mss/mss_main.c", line 2043: assertion failure
[C674X_0] A18=0xffffff81 A19=0x80
[Cortex_R4_0] xdc.runtime.Error.raise: terminating execution
[C674X_0] A20=0x81dca8 A21=0x81dce0
A22=0x81dd50 A23=0x81de68
A24=0x817154 A25=0x4dd62938
A26=0xcb6c9190 A27=0x4902d100
A28=0x81e058 A29=0x1643
A30=0x0 A31=0x88
B0=0x1 B1=0x0
B2=0x42a01e80 B3=0x427ae631
B4=0x0 B5=0x0
B6=0x0 B7=0x3ff00000
B8=0x0 B9=0x80000000
B10=0x42b12dc0 B11=0x41110d15
B12=0x41950a55 B13=0x4216653c
B14=0xc6457400 B15=0x8171d8
B16=0x1 B17=0x80
B18=0x0 B19=0x3d98f771
B20=0x81dc70 B21=0x81dd18
B22=0x81dd88 B23=0x81ddc0
B24=0x81ddf8 B25=0x40
B26=0xf8 B27=0x7f
B28=0x0 B29=0x47
B30=0x81da70 B31=0x0
NTSR=0x1020d
ITSR=0x20f
IRP=0x7e8a44
SSR=0x0
AMR=0x0
RILC=0x4
ILC=0x0
Exception at 0x427ae630
EFR=0x2 NRP=0x427ae630
Internal exception: IERR=0x1
Instruction fetch exception
{module#23}: line 256: error {id:0xb0000, args:[0x427ae630, 0x8171d8]}
xdc.runtime.Error.raise: terminating execution

Thanks for your time.

Regards

Anurag Tamboli

  • Hi Anurag,

    If you are trying to add some code which impacts any of DSP memories (L1/L2/L3) then make sure to calculate it properly and allocate accordingly.

    Regards,

    Jitendra

  • Hello Jitendra,

    Thank you for quick response. Actually I am saving output data in L3.

    Modified code in dss_data_path.c file below.

    /*! L3 RAM buffer */
    #pragma DATA_SECTION(gMmwL3, ".l3data");
    #pragma DATA_ALIGN(gMmwL3, 8);
    uint8_t gMmwL3[ODSDEMO_L3_SIZE-10000];
    #pragma DATA_SECTION(ptr_fftStore, ".l3data");
    #pragma DATA_ALIGN(ptr_fftStore, 8);
    float ptr_fftStore[64*64];
    I need to call FFT library 469 times in one frame interval. will it be feasible to call that many time?
    Regards
    Anurag Tamboli
  • Hi Anurag,

    There can be multiple reasons for this error. 

    1. If processing of one frame data overlaps next frame window.

    2. Processing and sending object data over UART must complete within that frame only, else DSS will hit an ASSERT.

    3. Calling multiple times FFT library may cause stack overflow or other allocated memory overflow (L1/2/3) and might adding more processing time to slide over next frame duration.

    I would request you to check these cause.

    Regards,

    Jitendra

  • Hi Jitendra,

    Thank you for your response. 

    Regards

    Anurag Tamboli