Cyclops: PRU programming framework for precise timing applications

The Beaglebone Black single-board computer is well-suited for real-time embedded applications because its system-on-a-chip contains two "Programmable Real-time Units" (PRUs): 200-MHz microcontrollers that run concurrently with the main 1-GHz CPU that runs Linux. This paper introduces "Cyclops": a web-browser-based IDE that facilitates the development of embedded applications on the Beaglebone Black's PRU. Users write PRU code in a simple JavaScript-inspired language, which Cyclops converts to PRU assembly code and deploys to the PRU. Cyclops automatically configures the Beaglebone's pinmux controller to use common I/O peripherals like ADC and PWM. Additionally, Cyclops includes a PRU library and Linux kernel module for synchronizing the PRU with the processor clock, enabling the PRU to time-stamp sensor measurements using the Linux processor time within sub-microsecond accuracy.

[1]  Marcelo Götz,et al.  A Grid-Tie Micro-inverter Software Development Based on a Low Cost Multiprocessor Platform , 2015, 2015 Brazilian Symposium on Computing Systems Engineering (SBESC).

[2]  Andrew P. McPherson,et al.  An Environment for Submillisecond-Latency Audio and Sensor Processing on BeagleBone Black , 2015 .

[3]  Nicole Abaid,et al.  Development of a frequency-modulated ultrasonic sensor inspired by bat echolocation , 2015, Smart Structures.

[4]  David L. Mills,et al.  Internet time synchronization: the network time protocol , 1991, IEEE Trans. Commun..

[5]  Shoukath Cherukat,et al.  Using PRUSS for Real-Time Applications on Beaglebone Black , 2015, WCI '15.

[6]  Kang Lee,et al.  IEEE 1588 standard for a precision clock synchronization protocol for networked measurement and control systems , 2002, 2nd ISA/IEEE Sensors for Industry Conference,.

[7]  Derek Molloy Exploring BeagleBone: Tools and Techniques for Building with Embedded Linux , 2014 .

[8]  Mani B. Srivastava,et al.  Realizing Uncertainty-Aware Timing Stack in Embedded Operating System , 2018, EWiLi.

[9]  Punam Bedi,et al.  Proceedings of the Third International Symposium on Women in Computing and Informatics , 2015 .

[10]  Cristian Marinescu,et al.  Design and implementation of a PTP clock infrastructure for the Linux kernel , 2010, 2010 IEEE International Symposium on Precision Clock Synchronization for Measurement, Control and Communication.

[11]  Jamil Chaoui,et al.  Open multimedia application platform: enabling multimedia applications in third generation wireless terminals through a combined RISC/DSP architecture , 2001, 2001 IEEE International Conference on Acoustics, Speech, and Signal Processing. Proceedings (Cat. No.01CH37221).

[12]  K.-E. Arzen,et al.  How does control timing affect performance? Analysis and simulation of timing using Jitterbug and TrueTime , 2003, IEEE Control Systems.

[13]  Anthony Rowe,et al.  Timeline: An Operating System Abstraction for Time-Aware Applications , 2016, 2016 IEEE Real-Time Systems Symposium (RTSS).