Manuel Bouyer <[email protected]> writes: [snip]
> It should be doable in an interrupt handler running at high IPL - these days > the global interrupt enable flag is turned off for very short time > (a few instructions) on NetBSD. Maybe even IPL_VM would be acceptable. > But your GPIO needs to be able to generate an interrupt. > I know it works on Allwinner A20, but I'm much less familiar with RPI. Interrupts with gpio and RPI won't be a problem. You can test some behavior in a simple manor with gpioirq(4) and gpiopps(4) uses them. The thing I have found that is a little annoying is that interrupts appear to be delivered only to CPU0 (at least on the RPI3) as far as I can tell and this can pose a problem if you are trying to service lots of them. Don't know about the RT part of the question. I do use schedctl with SCHED_FIFO at the highest priority for the RPI0 that is listening and decoding WWVB signals that I have (basically it uses gpiopps(4) as a pulse width ruler against a tiny radio ordered off of ebay and decodes it in userland with a program I found. The time is then fed to ntpd using the shared memory segment driver. It also feeds the pulse to a second gpiopps(4) to get the pulse-on-the-second into ntpd). This all works ok as long as WWVB has a good signal. -- Brad Spencer - [email protected] - KC8VKS - http://anduin.eldar.org
