December 8, 2013

Using the Beaglebone PRU

One of the best resources I have found to get oriented with the PRU (programmable realtime unit) are the training slides: The Beagle Bone Black (BBB) has a PRU unit which is contained within the AM3359 chip. It consists of two cores. Each can control 16 GPIO pins. Each runs at 200 Mhz, has its own assembly language, and is independent of the main ARM cpu. They are RISC processors and are programmed in assembly. Each has a 4K program memory and a 512 byte data memory. They communicate with the main processor via shared memory and interrupts.

They are effectively coprocessors. Some people find it entertaining to think of them as two embedded "arduino" units. Consider however that they run at 200 Mhz (whereas arduinos run at 20 Mhz) and that they have a much more sophisticated communication link to the main CPU.

My efforts thus far:

Links and resources

You will be wanting the PRU assembler and related tools. You want the first of the following packages. The second package (from TI) does not provide the PRU assembler source, nor does it provide a PRU assembler that will run on the ARM. It does provide a bunch of extra examples.
  • TI: PRU software development package ----- ( see these instructions ) Searches for things like "beaglebone pru programming" and "uio_pruss" can be fruitful. There is a driver (uio_pruss) that supports all of this (apparently written by TI). PRUSS stands for PRU sub-system.


    Feedback? Questions? Drop me a line!

    Tom's Computer Info / tom@mmto.org