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.

simulator



Hello,

I'm trying to use TMS320C28x Instruction Set Simulator to simulate f2812 with CCS v3.3.38. I created a simple application that initializes CPU-Timer0 to issue periodic interrupts and then runs infinite loop. Application also contains simple Timer0 ISR. This works fine on a 2812 EVM.

To connect timer0 interrupts to PIE INT1.7 I added one line to sim2812.cfg in my <CCS_root>\drivers directory. PIE module now looks like:

module pie;
   cssi_library Pie.dll;
   init_function initPIE;
   int7 timer0;
end pie;

On simulator, application performs initializations well and runs OK until first timer0 interrupt (I tried single-stepping it). On first interrupt simulation stops, and disassembly window is displayed, showing that executions stopped at instruction:

000000 0000 ITRAP0

VMAP and ENPIE bits are both set, which according to SPRU078E section 6.2, means that vector table is mapped to PIE Block (data space addresses 0x000D00−0x000DFF). I checked data space address 0x0000 0D4C (INT1.7), and it really contains address of my timer0 ISR. When I manually put it into PC, it executes normally.

Why simulated PIE doesn't fetch correct ISR vector? Am I missing something?