After receiving my BBB earlier this week, I was absolutely keen on using the Programmable Real-time (execution) Unit (or PRU), which is included in the main ARM-CPU of the BBB. But I soon realized that this is absolutely not a fun topic to start with, especially, if you are new to programming or embedded architectures. PRU programming can be pretty frustrating in the beginning and there is almost no community support or tutorials. But I’ll try to cover the topic as good as I can. 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 assembler is. You’ll also need some basic Linux skills (nothing too special).
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 real-time applications without having to read hundreds 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 real-time 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 waveform 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.