BeagleBone Black programmable realtime unit (PRU) Hello World – Intro

Introduction – A warning

After I received my BBB, earlier this week, I was absolutely keen on using the Programmable Realtime (execution) Unit (or PRU), which is included in the main ARM-CPU of the BBB. But I soon realised that this is absolutely no fun topic to start with, especially if you are new to programming or embedded architectures. So this is an official warning: IF YOU ARE NEW TO EMBEDDED HARDWARE, DO NOT START WITH PRU PROGRAMMING! Start with something, that is more fun, easier to learn and where you can actually see the progress you made. Because PRU programming might be pretty frustrating in the beginning and there is almost no community support or tutorials, you must be willing to learn this, so let’s get started.

bbb_3

What you will need

Well a BeagleBone Black you might say, and yes, you will need one. But you will also need some (at least rudimental) C skills (or a good skillset in a similar language)ย and you should know what an assembler is. Also some linux skills (nothing too special) are needed. But I don’t want to scare you too much for now, you will be scared enough when you see TI’s TRM for the first time!

Goals

What I want to do in this series is to provide a good starting point to PRU programming and to get you up and running, so you can create your own realtime applications, without having to read thousands of pages. But this will be a very basic guide, and I will not cover how the hardware works, I will just show you how to get your first realtime application running. So by the end of this series you should be able to write simple realtime applications.

About the hello world example

I’ll guide you through the steps of creating a basic wave generator. While this might sound like too much for a hello world example, I couldn’t think of a better way of showing you what it means to work with a realtime system. And this example might also be extended, so you can build your own hardware function generator for testing and prototyping.

Table of contents

Part 0 – Introduction (You are here)
Part 1 – About device trees and overlays
Part 2 – Programming

comment-banner

Advertisements

11 thoughts on “BeagleBone Black programmable realtime unit (PRU) Hello World – Intro

  1. What do you like more personally? Raspberry Pi, Arduino or BeagleBone? I like the Arduino Uno most, because it’s cheaper than the Pi and for me easier to use and set up. You dont have to configure linux and everything just Arduino studio on a computer

    Like

    1. I have some Raspberry PIs laying around at home. Actually I almost have them all, except for the 3 and the Zero. I also have a BBB (obviously ๐Ÿ˜€ ) and an Arduino Uno and I have to say that I like them all equally. There is no best one here. Each one is good on it’s own. For example the Raspberry Pi is good if you use it as a media center, because it comes with everything you need already on it, the Arduino is not so good for a mediacenter. The BBB is great for realtime applications and I like to look at it as an improved PI, which costs a bit more. The Arduino Uno is cheaper and has a lower power consumption than the two other boards and you can directly program the microcontroller if you want to. So they are all great dev boards, it just depends on what you want to use them for!

      Cheers

      Like

Leave your two cents, comment here!

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s