I get an "instruction fetch exception" while running my code. Any idea what causes this .. has one dealt with such an issue before? Any help is much appreciated
Thanks and regards,
Pavan
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.
I get an "instruction fetch exception" while running my code. Any idea what causes this .. has one dealt with such an issue before? Any help is much appreciated
Thanks and regards,
Pavan
Hi Pavan,
The CPU could not fetch an instruction and threw an exception. See Section 6 of the TMS320C64x/C64x+ DSP CPU and Instruction Set Reference Guide for more details on CPU Exceptions. (6.5.1 talks a bit about fetch exceptions specifically)
The cause can vary quite a bit... maybe it could not access program memory at that time for whatever reason...
ki
The register NRP will contain the address at which the invalid opcode was fetched. Go see what that address corresponds to. I would guess one of 2 things:
I'm not sure if you're using DSP/BIOS or not, but many suggestions for debugging these types of issues are offered here:
http://processors.wiki.ti.com/index.php?title=DSP_BIOS_Debugging_Tips
Hello,
I am experiencing the instruction fetch exception on a TMS320DM6437 processor.
I am attempting to follow you instructions on
http://processors.wiki.ti.com/index.php?title=DSP_BIOS_Debugging_Tips
I have CCS 4.2 and I'm attempting to see if I have a stack overflow using Method 1. I can open ROV, but I don't see the Kernel Object Viewer.
How do I open Kernel Object Viewer in CCS 4.2?
Tim M
Tim Murtaugh said:How do I open Kernel Object Viewer in CCS 4.2?
ROV is the right thing. Here's a quote from the wiki page:
After code has gotten into a bad state, halt the processor and open the DSP/BIOS Kernel Object Viewer (KOV). In CCS 3.3 go to DSP/BIOS -> Kernel Object View. In CCS 4.x go to Tools -> ROV.
I did not get what you meant by "I can open ROV, but I don't see the Kernel Object Viewer"
If you open ROV from the tools tab you will have to expand the Ti->BIOS->ROV catogories to see
LOG
MBX
MEM
SEM
SWI
TSK
I would suggest you put a break point in the nmi handler ( see .map file for the location) and have a look at the stack. If you still dont see anything trace back to the routine that may have caused the execption using the NRP and place a break point to see whats happening.
Brad,
I think ROV and KOV are two different things aren't they? In CCS 4.2, I can open ROV (runtime object viewer) but there is no KOV (kernel object viewer). There is no KOV on the toolbar (as shown in the screen shot in the wiki). When I open ROV, a window opens with a tree containing "ti" and "xdc" categories, each of these categories has sub-items, none of which is KOV.
My point is, I'm trying to debug a suspected stack overflow using the method described in the wiki, but I do not have a kernel object viewer as described in the wiki.
Thanks,
Tim
Are you using DSP/BIOS 5.41 or SYS/BIOS 6.x?
CCS 3.3 contains KOV. CCS 4.x and 5.x contains ROV. ROV contains the same info as KOV (and more). Just drill down in there a little bit, e.g. ti -> bios, and you should see the familiar list of components like KNL, TSK, etc.
Brad Griffis said:CCS 3.3 contains KOV. CCS 4.x and 5.x contains ROV. ROV contains the same info as KOV (and more).
Brad is correct. ROV is a new and improved KOV that is in CCSv4 and greater.
Thanks guys, I've got it now.
I'm using CCS version 4.2.0.10018 and SYS/BIOS 6.30.2.42. I found the information I need under ti->sysbios->knl->Task.The information there indicates that I do indeed have a stack overflow.
Thanks for your help.
Tim