Hi,

On Tue, Apr 20 at 05:48, Terry Coles wrote:
> Can anyone answer a few queries about coding for a real-time Linux kernel?

Perhaps you should define "real-time" for a start.  Are you looking to
achieve timing constraints in the tens of millisecond range, microseconds
or nanoseconds ?

Are you looking at a genuine real-time linux kernel (which are real hairy
beasts) or a recent 2.6.x system with the "real-time" scheduler capability.

I've seen people talk about real-time before, and then on analysis the real
requirements have had demands in the 10s or even 100s of milliseconds that
could be handled by a conventional system.


> 1.  I'm assuming that any drivers for the test resources would have to run in 
> kernel space rather than user space.  Is that true?

You can write user space drivers in linux (many X-windows graphics drivers
could be considered user space drivers) but it's not the norm, and several
barriers have to be overcome.  One of the primary questions whould be what's
the timing requirements ?


> 2.  How hard would it be for a Windows developer with C and C++ experience to 
> gain enough knowledge to integrate a driver into a real-time system?

Well I've never written a Windows program, and would consider it a pretty
daunting task.  I couldn't even find the C compiler the one time I looked.
The toolset and mindsets are different.

Can they write real C in a text file, or are they GUI box joiners ?

My first genuine device driver probably took me about 2 weeks from scratch
with only the most basic of guides.  I was a reasonably competent Unix
applications programmer at the time so already knew the basic tools. That was
nearly 30 years ago.  These days the documentation and guides are a lot better
but the whole kernel tends to be more complex.

Are you looking to bitbash a few bits in an I/O port or launch a scatter/
gather multi-channel DMA engine ?


> 3.  Is there anything that we should be aware of, other than the things I've 
> mentioned above?

Depending on how you intergrate your drivers with the kernel you might want to
consider liciencing issues.  Do you want to release the drivers under GPL ?


> 4.  Is there a better way?  We don't exclude contractors, but the amount of 

I shan't give you my thoughts about contractors.

Don't dispair.  We handle lots of near real-time (10-50ms) data on an ARM
processor (so not a GHz PC) on a conventional kernel without problem.  The
same system has one real time critical application that uses the kernel
"real-time" schedular capability, we expect that user space app to achieve 
sub microsecond timing and it does.


Can you give us any info on the devices you are trying to control ?

-- 
        Bob Dunlop

-- 
Next meeting: Unknown
http://dorset.lug.org.uk/     http://www.linkedin.com/groups?gid=2645413
   Chat: http://www.mibbit.com/?server=irc.blitzed.org&channel=%23dorset
           List info: https://mailman.lug.org.uk/mailman/listinfo/dorset

Reply via email to