I'm a Linux device driver writer want-to-be with a few questions. Could
someone supply a short answer or a pointer to where I should be reading.
I am about to start work on a device driver for an astronomical CCD camera.
The camera is controled at a very low level. For example: you need to shift
each pixel into an analog sample and hold register then gate this register
to a 16 bit analog to digital converter, wait a few u-sec then read 8 bits
at a time. The time between pixels must be kept very constant. and there are
about 2000 pixels accross a line. You get one interrupt when a line is
ready.
In general, character mode drivers look easy to do but I have an odd device.
There are a few things I have not been able to figure out by looking at
example drivers.
My question is:
1. While inside my driver's interrupt handler can I turn off _all_ other
interrupts? I realy do not want the CPU yanked away while I am reading
out pixels. (The analog sample and hold register looses charge so I must
be able to control the time a pixel stays in there) I cannot stand to have
the CPU yanked away to service say a clock tick for even a few micro seconds.
2. Can I stay inside an interrupt handler for extended periods without
causing to many problems for the rest of the system? It takes about 0.033 seconds
to read out these pixels. Yes I know this is a long time to have interrrupts
disabled. I can live with the time of day clock being off but will this cause
other serious problems?
3. The camera is not a shared device so I could write a user space driver. Is there
a way to deliver an interrrupt to a process running as root? Maybe some newer
kernels have this feature? I am planning on writing a true device driver but would
change plans if a user space driver could handle interrupts.
Thanks,
--Chris Albertson
chris@topdog.logicon.com Voice: 818-351-0089
Logicon RDA, Pasadena California Fax: 818-351-0699