Cyclops: PRU programming framework for precise timing applications (original) (raw)
Abstract
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.
Loading Preview
Sorry, preview is currently unavailable. You can download the paper by clicking the button above.
References (14)
- D. Molloy, Exploring BeagleBone: Tools and Techniques for Building with Embedded Linux. John Wiley & Sons, 2014.
- B. L. J. E. Karl-Erik, A. A. Cervin, and D. Henriksson, "How does control timing affect performance? analysis and simulation of timing using jitterbug and truetime," Control Systems Magazine, vol. 23, pp. 16-30, 2003.
- A. McPherson and V. Zappi, "An environment for submillisecond- latency audio and sensor processing on beaglebone black," in Audio Engineering Society Convention 138. Audio Engineering Society, 2015.
- A. M. Anand, B. Raveendran, S. Cherukat, and S. Shahab, "Using pruss for real-time applications on beaglebone black," in Proceedings of the Third International Symposium on Women in Computing and Informatics. ACM, 2015, pp. 377-382.
- K. Kepa and N. Abaid, "Development of a frequency-modulated ultra- sonic sensor inspired by bat echolocation," in SPIE Smart Structures and Materials+ Nondestructive Evaluation and Health Monitoring. International Society for Optics and Photonics, 2015, pp. 942 913- 942 913.
- B. Travaglione, "Using a single-board microcontroller and adc to per- form real-time sonar signal processing."
- M. Götz, M. W. Gobetti, and F. B. Libano, "A grid-tie micro-inverter software development based on a low cost multiprocessor platform," in Computing Systems Engineering (SBESC), 2015 Brazilian Symposium on. IEEE, 2015, pp. 122-127.
- J. Chaoui, K. Cyr, S. de Gregorio, J. P. Giacalone, J. Webb, and Y. Masse, "Open multimedia application platform: enabling multimedia applications in third generation wireless terminals through a combined risc/dsp architecture," in 2001 IEEE International Conference on Acous- tics, Speech, and Signal Processing. Proceedings (Cat. No.01CH37221), vol. 2, 2001, pp. 1009-1012 vol.2.
- F. Anwar, S. Dsouza, A. Symington, A. Dongare, R. Rajkumar, A. Rowe, and M. Srivastava, "Timeline: An operating system abstraction for time- aware applications," in Real-Time Systems Symposium (RTSS), 2016 IEEE. IEEE, 2016, pp. 191-202.
- A. Alanwar, F. Anwar, J. P. Hespanha, and M. Srivastava, "Realizing uncertainty-aware timing stack in embedded operating system," in Proc. of the Embedded Operating Systems Workshop, Oct. 2016.
- D. L. Mills, "Internet time synchronization: the network time protocol," Communications, IEEE Transactions on, vol. 39, no. 10, 1991.
- K. Lee, J. C. Eidson, H. Weibel, and D. Mohl, "Ieee 1588-standard for a precision clock synchronization protocol for networked measurement and control systems," in Conference on IEEE, vol. 1588, 2005, p. 2.
- R. Cochran and C. Marinescu, "Design and implementation of a ptp clock infrastructure for the linux kernel," in Precision Clock Synchro- nization for Measurement Control and Communication (ISPCS), 2010
- International IEEE Symposium on. IEEE, 2010, pp. 116-121.