NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Hard Real-Time?



Manuel Bouyer <bouyer%antioche.eu.org@localhost> 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 - brad%anduin.eldar.org@localhost - KC8VKS - http://anduin.eldar.org


Home | Main Index | Thread Index | Old Index