Support for the programmable real-time units (PRUs) on BeagleBone Black is still under heavy development. Fortunately, there are some emerging examples that make using the PRU microcontrollers easier. The 'libpruio' project is an excellent one of those examples
With bindings for FreeBASIC and C, libpruio makes it easy for programmers to take advantage of the PRUs to perform real-time I/O using the on-board analog-to-digital converters (ADCs) and pulse-width modulators (PWMs). It is even possible to use the capture module to measure the frequency and duty-cycle of a pulse train.
The project includes all of the device tree configuration and PRU firmware, so you don't need to worry about programming the PRU yourself. Just kick back and use the simple API and a good number of examples to get all your real-time I/O, without writing a Linux driver or using real-time kernel patches.