On Monday 02 February 2009 04:41:34 Nicholas Fearnley wrote:
> > Yes, I would expect it.
> >
> > I don't know what the maximum is for interrupts, but one every 0.2
> > microseconds seems rather extreme.
> >
> > What are you trying to do and can it be accomplished in a friendlier
> > fashion?
> >
> > Cheers,
> >
> > Lloyd
> >
> >> Hi
> >>
> >> We are triggering an interrupt on GPIO0, successfully and the ISR is
> >> being run.  It is empty, that is it simply returns.  We are
> >> observing /
> >> proc/interrupts to see the increment.
> >>
> >> The problem is that when we hook the DVEVM up to a (4-5Mhz) source
> >> rather than a simple switch we lose all terminal access, SSH, telnet
> >> and so on.  The board appears to have hung.  But when we remove the
> >> source from GPIO0 the terminal returns.  We see a good number of
> >> interrupts in /proc/interrupts but it appears that the source at this
> >> rate (~5Mhz) is far too much for the GPIO/ISR/CPU.
> >>
> >> Should this be expected?
> >>
> >> Nick
>
> We have an external DVB device (we have a scheme from TI for
> connecting to video input port but this is in use).  At 30Mbs it's
> sending a 'byte ready' at 4Mhz
>
> Given it is connected to the EMIF, there must be a way to grab data
> from it, a way to hook up the 'byte ready' pin to some clock.  Ideally
> we want to DMA it.  Is there a way to hook up the DMA controller to an
> external device without interrupting the CPU(I guess this would be
> considered a mem-mem transfer?)
>
> Also need to generate an output on the EMIF at about this rate using a
> regular clock - plan was to use the internal timer on the DM6446 to
> generate an interrupt but will this exhibit the same issue?  In which
> case how to generate a ( < 4Mhz) output on the EMIF?
>
> Thanks for your help.

Here is my rough overview of what you might think about:

1. Use DMA to input/output your data with an interrupt being generated per 
frame or block of data. This would be considered to be a lot friendlier.
2. Use TI's DMA controller - it is quite sophisticated. Unfortunately I am not 
the guy to go to as I have had zero experience with it :(
3. Try to use interrupts only on groups, rather than on every byte. You will 
be happier and the processer will be happier.

I think you pretty much had this down, however.

NOTE: you get nothing for free. If you are sending/recieving 30 Mbs per second 
24/7 you're going to take a performance hit. If it is 30 Mbs in/30 Mbs out 
24/7 you're taking twice the hit. I've experience with the former, none with 
the latter.

It CAN be done. Just takes a little puzzling out.

Good luck!

Lloyd




_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to