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
