How do you program a PRU BeagleBone?


  1. Flash the BeagleBone with the provided build, and boot it up.
  2. Disable HDMI in /boot/uEnv.txt (back in Cloud9 IDE terminal window)
  3. Restart the BeagleBone shutdown –r now.
  4. Load the kernel module (back in Cloud9 IDE terminal window) modprobe pru_speak.

What is Pru code?

The Programmable Real-time Unit (PRU) The most unique feature of BeagleBone (and its underlying TI Sitara SoC) are its PRUs which are realtime microcontrollers that are nicely integrated with the ARM core. You have two options to program the PRUs: Using TI’s Code Composer Studio (CCS).

What is a programmable real time unit?

The Programmable Real-Time Unit (PRU) is a small processor that is tightly integrated with an IO subsystem, offering low-latency control of IO pins on our SoC devices, including the AM335x, AM437x and AM57x Sitara™ processors.

What is Pru in embedded system?

Is Beaglebone Black suitable for real time applications?

The beaglebone Black processor includes two independent Programmable Real Time Units (PRUs). Hobbyists and professionals are excited about possible use of these units for real-time applications, which is understood.

Is it possible to program the PRU using the C language?

Several people contacted me to know if I made any progress on using the C language to program the PRU. My answer is that the toolchain proposed by TI, called CGT (Code Generation Tools) is very usable once the different tools and some details have been understood.

How do the main CPU and the PRU communicate with each other?

The main CPU and PRU’s are interconnected with each other with a data bus to communicate and/or share data with each other. Both systems (the main CPU and the PRU’s) can perform GPIO operations as well, allowing for very fast input/output operations.

How does the PRU code work?

The code itself simply does a floating point multiplication on the PRU and puts the result into the memory shared, refer to pru_main.c The CPU reads and display the result, refer to host_main.c I made a simple script that compiles everything, refer to example/pruss_c/ .

How can I program the PRU cores?

Programming of the PRU cores was first possible by provision of a freely distributed assembler, but later on also by a C/C++ compiler which made programming the real time units more accessible for programmers not familiar with using assembly language.