Ok I figured it out lol. I was adding the actual byte-size offsets to pointers to longs, so it was being offset by 4x as much as I would have expected.
The program works fine otherwise. On Monday, June 15, 2020 at 11:47:30 AM UTC-4, Fred Frey wrote: > > Hello > > I'm trying to write a simple program to test the IEP timers. Ideally I'd > like to be able to poll the timer and get an unsigned long value back, but > for this test, I followed what I read in this post: > > > https://www.element14.com/community/community/designcenter/single-board-computers/next-genbeaglebone/blog/2019/08/12/beaglebone-pru-timer-functionality > > With a few minor changes -- I provide a different GPIO pin, made it loop > forever, and made the frequency for the square wave ~2kHz. > > I also have a different way of configuring the IEP/INTC. I manually > defined the addresses: > > #define IEP_HOME ((volatile unsigned long*)0x2E000) > #define TMR_GLOBAL_CFG (*(IEP_HOME+0x00)) > #define TMR_GLOBAL_STATUS (*(IEP_HOME+0x04)) > #define TMR_COMPEN (*(IEP_HOME+0x08)) > #define TMR_COUNT (*(IEP_HOME+0x0C)) > #define TMR_CMP0 (*(IEP_HOME+0x48)) > #define TMR_CMP_STATUS (*(IEP_HOME+0x44)) > #define TMR_CMP_CFG (*(IEP_HOME+0x40)) > > ... > > #define INTC_HOME ((volatile unsigned long*)(0x20000)) > > #define INTC_SECR0 (*(INTC_HOME+0x280)) > #define INTC_SECR1 (*(INTC_HOME+0x284)) > > > And I configured them like so: > > TMR_GLOBAL_CFG &= 0xfffffffe; // disable timer > > TMR_COUNT = 0x0; // reset timer > > TMR_CMP_STATUS = 0xff; // clear compare status > > TMR_CMP0 = 100000; // 0.0025 SEC @ 200 MHz > > TMR_COMPEN &= 0xff000000; // set compensation to 0 > > TMR_CMP_CFG &= 0x03; // enable cmp0 and reset on event > > INTC_SECR0 = 0xffffffff; > INTC_SECR1 = 0xffffffff; > > TMR_GLOBAL_CFG = 0x11; // enable counter > > > When I read from TMR_COUNT, it's always 0, and the interrupt never fires. > What am I missing? > > Thanks, > Fred > > -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/beagleboard/a43757ec-947e-4938-a04e-4e9cc4b9a520o%40googlegroups.com.
