Am Montag, 12. Januar 2015 17:57:19 UTC+1 schrieb Charles Steinkuehler:
>
> Reads from GPIO pins are another matter.  Since it is not possible to 
> post the reads, and the PRU (by design) doesn't execute instructions out 
> of order or perform speculative execution, the PRU core stalls after 
> issuing a read GPIO request until the data is returned from the 
> interconnect fabric (apx. 165 nS). 
>

The same happens for main core applications. When one reads a GPI-register 
to get the current input state value, the whole system is stalled until the 
read is finished. This also includes IRQs, none of them is delivered during 
that time. The only workaround (at least the only one I found to overcome 
this problem) is to set up interrupts for rising/falling edge of the inputs 
that have to be watched and read the input only when such an interrupt 
occurred.

This makes the whole system much faster comparing to plain input polling 
but is not a guarantee: when an input changes very fast the system is 
slowed down again because many interrupts happen -> many reads of slow 
input state registers are done.

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to