NetBSD-Users archive

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

Re: Hard Real-Time?

On Wed, Apr 15, 2020 at 01:14:02PM -0700, Michael Cheponis wrote:
> Is there already a way to do "hard real time" on NetBSD?
> To me, "hard real time" means from an external pin going 'high' to the 1st
> instruction of my driver executing is on the order of (up to) 10 usec.
> Many eons ago, I did this on BSD4.3 VAX 785 and achieved <  about 100 usec
> jitter.  It was a Royal Pain to do, since so many places in the kernel
> turned off interrupts as it massaged various data structures.  The pain was
> to find every one of those and break them down to absolutely minimize the
> time interrupts were turned off.
> But it worked:  Here it is controlling various hopping machines:
>  I'm
> sitting controlling the thing; the umbilical goes back to a UNIBUS
> interface in the VAX.  Timesharing only slowed down; it did not stop during
> operation.
> I'm especially interested in getting the RPi to operate 'hard real time' on
> NetBSD.  I mainly want to use the RPi to control a robot -- low  level as
> well has higher-level planning/control.

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.

Manuel Bouyer <>
     NetBSD: 26 ans d'experience feront toujours la difference

Home | Main Index | Thread Index | Old Index