On Wed, Mar 22, 2017 at 10:13 PM, ags <alfred.g.schm...@gmail.com> wrote:

> I thought using select() to wait for notification of an event (by
> "listening" to the fsys uio files) would free the ARM cpu to do other
> things while waiting, but provide the most immediate path to the user space
> application to send more data. Is there a better way?
>

So that select() is probably your whole problem. Unless, you're using other
system calls as well. But I've already discussed with you the best, and
fastest way to achieve your goal. Several times in fact. Use a bit in
memory, *somewhere*.

PRU side:
while(somewhere & 0x1 )
    usleep(1000);
/* Do our work after while() fall through */

Userspace side:
while(! (somewhere & 0x1) )
    usleep(1000);
/* Do our work after while() fall through */

No need for select(), no need for fancy threading calls, or other magical
hand waving. Just two simple busy wait loops waiting for their respective
turns. But, don't forget to toggle the bit back, when you're done. Anyway,
it's not really Linux that's off in the weeds. Well perhaps it is, but your
application is pushing it into the weeds.

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/CALHSORrE5%2BS%2BzDy7K-iZX0A5ccBKpwocQYEH2KGreoTVaOwmnw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to