Re: Re: DeskNC MS Windows version
Posted by
Ray
on 2001-04-18 20:39:03 UTC
Art
It really isn't linux interrupting itself to do the real-time timing work.
The New Mexico Tech/FMS Labs layer the resides between the hardware and
the OS does it by applying the steppermod or freqmod program directly to
hardware. This very thin real-time OS only allows Linux to use what's
left over from the processes that it is directly running. You might think
of it like a 500 mHz computer that splits off 350 mHz to use real time and
Linux, running on what's left thinks that it's running on a much slower PC.
With freqmod it is possible to completely starve out linux and get almost
no response from it at all. A computer seems to die but the EMC is
still in there and still pushing pulses past the parallel port. I've
heard of cases where Linux died and the EMC finished the part. I would
guess that it did this because the look ahead in the interpreter and task
controllers had already stuffed all their work into shared memory.
The Linux and real-time processes communicate through a chunk of shared
memory. Linux feeds and looks at it and sets values as does the real-time
layer. There is almost nothing that can get in the way of work on the
real-time side. But these two layers are really different OS's and can
appear to produce that look like a person with a very fast bipolar disorder.
What is happening in development now are attempts to find the software
equivalent of prozac or zoloft. Several very different approaches to
deterministic real-time are being promoted. Before many months go by, we
should have an announcement from the Linux developers on the final approach
to be released as a part of the standard linux kernel.
Hope this helps.
Ray
From: "Art Fenerty" <fenerty@...>
I must check this out further. 30000 steps/second from linux? Anyone know
how the linux knows to interrupt itseld 30000 times a second. I don't see
how its possible. I can't think of any way to instruct a motherboard to tell
linux to interrupt at that rate, no matter how fast the processor.
Interesting though. But I think that 10 motor turns per inch at 200 pulses
per turn is 2000 pulses per inch. This would make it 180 * 2000 / 60 = 6000
pulses per second in the example given. Encoders do not up the steps per
second. They simply give a higher resolution to the step decision.
It really isn't linux interrupting itself to do the real-time timing work.
The New Mexico Tech/FMS Labs layer the resides between the hardware and
the OS does it by applying the steppermod or freqmod program directly to
hardware. This very thin real-time OS only allows Linux to use what's
left over from the processes that it is directly running. You might think
of it like a 500 mHz computer that splits off 350 mHz to use real time and
Linux, running on what's left thinks that it's running on a much slower PC.
With freqmod it is possible to completely starve out linux and get almost
no response from it at all. A computer seems to die but the EMC is
still in there and still pushing pulses past the parallel port. I've
heard of cases where Linux died and the EMC finished the part. I would
guess that it did this because the look ahead in the interpreter and task
controllers had already stuffed all their work into shared memory.
The Linux and real-time processes communicate through a chunk of shared
memory. Linux feeds and looks at it and sets values as does the real-time
layer. There is almost nothing that can get in the way of work on the
real-time side. But these two layers are really different OS's and can
appear to produce that look like a person with a very fast bipolar disorder.
What is happening in development now are attempts to find the software
equivalent of prozac or zoloft. Several very different approaches to
deterministic real-time are being promoted. Before many months go by, we
should have an announcement from the Linux developers on the final approach
to be released as a part of the standard linux kernel.
Hope this helps.
Ray
From: "Art Fenerty" <fenerty@...>
I must check this out further. 30000 steps/second from linux? Anyone know
how the linux knows to interrupt itseld 30000 times a second. I don't see
how its possible. I can't think of any way to instruct a motherboard to tell
linux to interrupt at that rate, no matter how fast the processor.
Interesting though. But I think that 10 motor turns per inch at 200 pulses
per turn is 2000 pulses per inch. This would make it 180 * 2000 / 60 = 6000
pulses per second in the example given. Encoders do not up the steps per
second. They simply give a higher resolution to the step decision.