CJMP does not correctly loading into PC.
The reason it happened was that I had DMA2 initialised. However, I had not
initialised the interrupt vector for DMA2. So, when the interrupt triggered,
PC jumped to 0x00000000. This coincided with a CJMP (ABS);;
However, this happens when I am simulating the program on VDSP++ Simulator.
Does VDSP++ Simulator also simulate External Port DMA timings/operations? From
my observations, it seems that it does.
To answer your question, yes the simulator does some
modeling of external port DMA. However, it may not be entirely cycle-accurate
when it comes to other peripherals such as link ports, and it may also not be
entirely concurrent with silicon when it comes to simulating various stalls
such as those occuring in the branch-target-buffer, branches, etc. This will
result in a cycle difference of a few cycles. However, functionally it should
model the silicon accurately.