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...

Loading Preview

Sorry, preview is currently unavailable. You can download the paper by clicking the button above.

References (14)

  1. D. Molloy, Exploring BeagleBone: Tools and Techniques for Building with Embedded Linux. John Wiley & Sons, 2014.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. B. Travaglione, "Using a single-board microcontroller and adc to per- form real-time sonar signal processing."
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. D. L. Mills, "Internet time synchronization: the network time protocol," Communications, IEEE Transactions on, vol. 39, no. 10, 1991.
  12. 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.
  13. 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
  14. International IEEE Symposium on. IEEE, 2010, pp. 116-121.