Este es un enfoque diferente a su problema, y no se trata de trabajar dentro de Linux. En su lugar, se trata de usar otros recursos de BeagleBone Black para resolver el problema.
Además del ARM Corex-A8, el BeagleBone Black también tiene dos procesadores más, llamados Subsistema de unidad de tiempo real programable e Industrial Subsistema de comunicación (PRU-ICSS), a menudo solo PRU.
Las dos PRU se ejecutan independientemente del ARM que ejecuta Linux, por lo que no se ven afectadas por la programación de Linux; Linux no los interrumpirá ni los anulará.
Las PRU están diseñadas para el procesamiento en tiempo real y tienen acceso a todas las E / S. Son núcleos RISC que funcionan a 200 MHz, por lo que deben ser lo suficientemente rápidos y ser capaces de hacer lo que necesites. Podría dedicar uno a su tarea de comunicación SPI.
Se pueden programar en C o ensamblador. Hay varios artículos útiles en la web, este en Hackspace tiene Enlaces útiles a ejemplos clave y tecnología. IIRC hay ejemplos que muestran cómo el 'procesador de Linux' principal interactúa con una PRU.
Editar:
Este es un curso de sobre el uso de la PRU .