Re: [uCsimm] Interrupts and RTLinux

From: Florian G. Pflug (fgp@phlo.org)
Date: Wed Jan 03 2001 - 20:11:47 EST


On Wed, Jan 03, 2001 at 01:28:00PM -0500, Tom Walsh wrote:
> "D. Peter Siddons" wrote:
> >
> > Hi all,
> > I was able to install the RTL patches on my uCsimm, and was
> > able to execute the 'parallel' example succesfully. I then tried
> > to run the 'frank' example, and failed. The userland application
> > reported that the device /dev/rtf0 did not exist. I created the
> > device nodes in /dev for rtf0 thro 7 to see if that helped, but
> > the result is the same. Anybody succesfully run 'frank' on a
> > uCsimm?
>
> I don't have that sources, my platform is my own design. I did try out
> the RTL patches and found that they are not stable. The uClinux has a
> tendancy to silently crash (lockup), it was suggested to me that the
> fifo operations within the RTL does not buffer more than one character.
> I did experience the crashing due to the patches, fortunately the
> customer I was demo-ing the unit for did not notice it.
>
> Not saying that the RTL is unfixable, just that they are not "golden".
> I have moved towards using the RTAI style of approach, running uClinux
> as a low-priority task to an interrupt driven hardware control layer.
> It is not RTAI compatible, but it works for me.
Hi

What I noticed when using the RT-Patches is that the major number of the
fifo device used in the source is another one than it should be according to
the documentation.

I don't remeber the correct major and minor numbers, but this is quite easy
to figure out by checking the source.

I too had stability problems with the patches. My fifos would sometimes just
stop working - the userspace programm trying to read from them just blocked
forever.

I fixed this, but I never really figured out what change _exactly_ fixed the
problem, and therefore I didn't submit a patch.

I think the wait queues used to inform the linux kernel to wake a
sleeping/blocked process up got corrupted due to a bug in the interrupt
locking code.

I did some changes, switched to using a own wait queue for each fifo, and
after playing with this stuff for a while, the crashed disappeared.

Since I was doing did only as a school project, I didn't investigate this
further.

mfg, Florian Pflug
This message resent by the ucsimm@uclinux.com list server http://www.uClinux.com/



This archive was generated by hypermail 2b30 : Sun Apr 07 2002 - 00:01:39 EST