Hello everybody!
I am trying to get the PIT going on a PPC5748G processor.
This is what I do:
1) Create a new S32DS C++ project using newlib.
2) Edit the main function so it looks like this:
int main()
{
// Configure clocks to peripherals
MC_ME.RUN_PC[0].R = 0x00000000;
MC_ME.RUN_PC[1].R = 0x000000FE; // configuration 1, peripheral clock active for all RUN modes
MC_ME.PCTL[91].B.RUN_CFG = 0x1; // PIT: select peripheral clock configuration 1, RUN_PC[1]
xcptn_xmpl (); /* Configure and Enable Interrupts */
// Enable PIT module.
PIT.MCR.B.MDIS = 0;
counterclass myccounter;
for(;;) {
myccounter.increment();
}
return 0;
}
3) Start a debug session.
4) Double-click on "EmbSys Registers/PIT/MCR": The value displayed is 0xFFF84000, which is actually the address of the register rather than the reset value 0x00000006 that I would expect.
5) Single step through the code.
6) After stepping into the line "PIT.MCR.B.MDIS = 0;" the session seems to hang. There is no indication of where execution is taking place, and it is no longer possible to read out register values.
7) Suspend execution: Execution stops at IVOR1_Vector() which I assume means that some sort of error has ocurred.
Can someone tell what I'm doing wrong or how to proceed?
I notice that there is no code to setup clocks in the template project.
Maybe the PIT module is actually not clocked at all when I try to access it.
Is there an example project using PIT interrupts that I can try?
Best Regards
Ville