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.

Instruction fetch exception on EVMC6678LE

Other Parts Discussed in Thread: SYSBIOS

Greetings, 

I was hoping that someone could provide me some direction as to how I might go about trouble-shooting the following instruction fetch exception. The application is a modification of the System Analyzer Tutorial 4C.

  • [C66xx_2] A0=0x0 A1=0x0
  • [C66xx_2] A2=0x0 A3=0x0
  • [C66xx_2] A4=0x0 A5=0x1
  • [C66xx_2] A6=0x193 A7=0x0
  • [C66xx_2] A8=0xc0006ec A9=0x1
  • [C66xx_2] A10=0xfffffffc A11=0x2
  • [C66xx_2] A12=0x0 A13=0xc0000b8
  • [C66xx_2] A14=0xc0006ec A15=0xc195830
  • [C66xx_2] A16=0xc205780 A17=0x10
  • [C66xx_2] A18=0x806780 A19=0x30
  • [C66xx_2] A20=0x6c A21=0x4c
  • [C66xx_2] A22=0x40100581 A23=0xb040
  • [C66xx_2] A24=0x420880 A25=0x8031000c
  • [C66xx_2] A26=0x84605 A27=0x60800006
  • [C66xx_2] A28=0x20000 A29=0x0
  • [C66xx_2] A30=0xc1932dc A31=0x0
  • [C66xx_2] B0=0x1 B1=0x0
  • [C66xx_2] B2=0x0 B3=0xc323e24
  • [C66xx_2] B4=0x2 B5=0xc1930a8
  • [C66xx_2] B6=0xf580010 B7=0xc192af0
  • [C66xx_2] B8=0x0 B9=0x0
  • [C66xx_2] B10=0x90 B11=0x1
  • [C66xx_2] B12=0x2 B13=0xc37b1e0
  • [C66xx_2] B14=0x806f98 B15=0x8068c8
  • [C66xx_2] B16=0x8068b8 B17=0x0
  • [C66xx_2] B18=0xc0004f0 B19=0xc
  • [C66xx_2] B20=0x69 B21=0x3
  • [C66xx_2] B22=0x3 B23=0x0
  • [C66xx_2] B24=0x9c002cc4 B25=0xc4002200
  • [C66xx_2] B26=0x304482 B27=0x22400302
  • [C66xx_2] B28=0x420a0900 B29=0x8005202a
  • [C66xx_2] B30=0x0 B31=0x1
  • [C66xx_2] NTSR=0x1000c
  • [C66xx_2] ITSR=0x0
  • [C66xx_2] IRP=0x0
  • [C66xx_2] SSR=0x0
  • [C66xx_2] AMR=0x0
  • [C66xx_2] RILC=0x0
  • [C66xx_2] ILC=0x0
  • [C66xx_2] Exception at 0x0
  • [C66xx_2] EFR=0x2 NRP=0x0
  • [C66xx_2] Internal exception: IERR=0x1
  • [C66xx_2] Instruction fetch exception
  • [C66xx_2] ti.sysbios.family.c64p.Exception: line 248: E_exceptionMin: pc = 0x00000000, sp = 0x008068c8.
  • [C66xx_2] xdc.runtime.Error.raise: terminating execution

Basically, which tools in CCS5.1 do I use to trace the problem to its root cause? I there a good tutorial on how debug such a problem?

  • Nicholas,

    This is saying that you had an Instruction Fetch Exception, the EFR = 0x2 gives you this, the NRP = 0x0 tells you where the PC was (or was trying to be) when it occured.  The PC being 0x0000 0000 is definitely invalid.  I'd suspect that this was a bad branch (possibly to an uninitialized value.) 

    I'd start tracing the B3 register to see where it's branching from, you'll probably have to start at the end of the trace and work you way back out of the exception handling SW to get to the last part of the code before the error, and view the disassembly to see where it's branching too 0x0 (it may be a branch to a register that has recently been loaded, and that value may not have been initialized or may have been overwritten.)  Once you get to that point you can't start debugging some more.  May put a breakpoint there.  If it's executed a lot, then you may be able to use the AET (i.e. break when the address where the pointer is read, but only when the value is 0x0.)

    I'm moving this to the Code Composer Forum as they'll be able to help you a bit more on how to use trace itself.

    Best Regards,

    Chad