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.

C6678 Instruction Fetch exception

Other Parts Discussed in Thread: SYSBIOS

I got the following error message after loading the binary to one DSP core. I am new to TI multicore DSP. What is the possible cause? 

[C66xx_0] A0=0x900040b8 A1=0x900040b8
A2=0x0 A3=0x77
A4=0xb5ba4a8a A5=0x900040b8
A6=0x75b5201 A7=0x0
A8=0x0 A9=0x4
A10=0x2 A11=0xa0253cf0
A12=0xe8406c17 A13=0xc0e70fc
A14=0x900040b8 A15=0x0
A16=0x900040b8 A17=0x0
A18=0x90004078 A19=0x40
A20=0x180 A21=0x4b6046
A22=0x[C66xx_0] 212a4000 A23=0x80100980
A24=0x43401414 A25=0x404343f5
A26=0xbc235a75 A27=0x0
A28=0x8 A29=0xb
A30=0x2 A31=0xa024205c
B0=0x1 B1=0x1
B2=0x0 B3=0xc06a350
B4=0x900040b8 B5=0xc0e70fc
B6=0x0 B7=0x1
B8=0x0 B9=0x1
B10=0x90000020 B11=0x0
B12=0x1 B13=0xc06fe24
B14=0x[C66xx_0] a0252ae0 B15=0x831ec8
B16=0x0 B17=0x832028
B18=0xff B19=0x20
B20=0x20 B21=0xd43068c6
B22=0xd3a344a B23=0x64844880
B24=0x62c0011 B25=0xfd90f9bd
B26=0x9dffe7db B27=0xfb7efdf7
B28=0xe3fd5eca B29=0x0
B30=0x21 B31=0x0
NTSR=0x1000f
ITSR=0xd
IRP=0xc075104
SSR=0x0[C66xx_0]
AMR=0x0
RILC=0x0
ILC=0x0
Exception at 0x75b5200
EFR=0x2 NRP=0x75b5200
Internal exception: IERR=0x1
Instruction fetch exception
ti.sysbios.family.c64p.Exception: line 248: E_exceptionMin: pc = 0x075b5200, sp = 0x00831ec8.
To see more exception detail, use [C66xx_0] ROV or set 'ti.sysbios.family.c64p.Exception.enablePrint = true;'
xdc.runtime.Error.raise: terminating execution

  • It's trying to execute code out of a reserved space (0x075b5200) this is where your Exception occurred, it's a reserved space and when the CorePac tried to access (fetch) it it could not and thus through the Fetch Exception.

    Looking at the register dump A6 is 0x075b5201, your code probably tried to do a B A6, wherever it was from.  Which was probably at the memory location where B3 is pointing (that's used as the return pointer.) 

    My guess is that A6 is an uninitialized variable, or that it's been corrupted (i.e. was a fixed pointer stored near the end of stack and you had a stack overflow for example.)

    Best Regards,

    Chad

  • Hi Chad

    I had also face with many the exceptions. Could you  tell me where can I find the registers represent information?  For example, what's the registers A1~A31 mean?

    And where can I find the exceptions' description?

     

    Thank you~

    Long

  • The registers that are dumped are defined in the C66x CPU and Instruction set Reference Guide.  Which can be found on the product page.

    Best Regards,

    Chad

  • Thanks for your write back.

    best wishes