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