Hi. I've got a nearly complete application running on an OMAP-L138 processor. I've found I need a small task running at 200kHz. So I coded the task up in PASM, and am hosting it in PRU0. I've programmed Timer64P2 as two unchained 32-bit timers in continuous reload mode, with TIM12 generating an internal interrupt at the 200kHz rate. My plan was to have this serve as the trigger to get PRU0 to do one iteration of its task.
I can't see the timer interrupt in PRU0. A little while after kicking things off, I have the DSP core check on things. First I read the INTCTLSTAT register in Timer64P2. I see a value of 0x00000003, indicating that the internal interrupt is enabled, and has fired. Next I read the STATSETINT0 (also sometimes referred to as SRSR1) register in the PRU INTC. I see a value of 0x00700000, indicating that UART2, UART1, and Timer64P1 (all in active use by the Linux kernel running on the ARM core, and yes I've made sure to set the PRUSSEVTSEL bit in CFGCHIP3 to 1) have fired events, but Timer64P2 has not.
What am I missing? How do I get an interrupt from the Timer64P2 module into the PRU interrupt controller? Thanks much for any insight anyone can give.