Video of my very first print using LinuxCNC running on a BeagleBone with the BeBoPr cape to control my MendeMax RepRap 3D printer. The BeagleBone is running a Xenomai real-time kernel, but using the PRU (Programmable Realtime Unit, a 200 MHz deterministic microcontroller for off-loading time-critical tasks) to do step/dir and pwm generation. The PRU code is fairly advanced, and supports a configurable task list with full control over the number and types of tasks (ie: make as few/many step/dir and/or pwm outputs as you want). The PRU is currently running a 10 uS task loop, but can run faster or slower depending on how many tasks you want to run. The 10 uS is easily handling 4 step/dir tasks plus a pwm task with 3 outputs and is only busy about 1.5 uS (so 85% idle).
The source for the PRU code and the LinuxCNC HAL driver to talk to it can be found here: http://git.mah.priv.at/gitweb?p=emc2-dev.git;a=shortlog;h=refs/heads/arm335x-hal-pru-tasks
Look in the src/hal/drivers/hal_pru_generic directory. The *.p files are for the PRU, and the *.c files are the Linux/LinuxCNC side driver for it.