On Fri, 13 Jun 2014 13:48:59 -0700 (PDT) Aswin <[email protected]> wrote:
> Hi, > > I need to interface BBB with a PIC microcontroller using UART. I have had > partial success- I could read the data received by BBB using minicom as > well as this command: (stty 115200 cs8 -ixon; cat) < /dev/ttyO0 > > UART_data.log > I assume these two methods use polling. > > My app expects around 80kB data from PIC and need to write it into some > file. Since polling would mean that BBB would've to loop and not be able to > execute anything else, I guess I should go for interrupt driven UART. But > I'm totally clueless on how to go about it. Can someone please help me? I assume these two methods end up doing a libc "read", which transfers to the OS the task of reading the data. IFAIK, it does use interrupts. http://www.freebsd.org/cgi/man.cgi?query=read&sektion=2 Notice that when you specify the amount of data to be read (nbytes) the read "blocks" until that amount of data arrives. But while blocked waiting, you will also notice that the CPU is almost all free for other threads and processes. So simply start a new thread or process and use the OS to read the data. The OS will handle it gracefully, with low CPU overhead. Even if you loop, reading small chunks (like 1 or 8 bytes, for instance), just for checking the live stream in real time, still the CPU usage would be negligible at 115200. -- 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 [email protected]. For more options, visit https://groups.google.com/d/optout.
