Back to school - RTEMS Class

As mentioned, I am interested in diversifying my OS knowledge further. Joel mentioned he was teaching an RTEMS Open Class in Munich last month so that was a perfect opportunity to take part.

So I booked a flight, and AirBNB room, and there I was! Coffee, pretzels (I get it now!), class, beer, food, hacking - heavenly really. It was a great experience. For many reasons!

Reasons the class was great, one: I learned a lot about RTEMS

Both usage and its internal structure, and real-time systems in general. I had done some preparation beforehand so that I would get the most out of the class, but both were something of a first for me.

Joel teaching

Pictured above: Joel in front of the projection screen.

Two: I got to socialize with Joel

He lives in the US so we don't see each other much. It was great to catch up a bit and talk about subjects ranging from technical RTEMS subjects, to life and happiness and such things in general.

Having a beer with Joel

Left: me. Right: Joel.

We all know socializing is simply code for drinking beer together, no?

Three: the Beagle BSP

Based on Joel's suggestion beforehand I had set myself the goal of writing a BSP for the Beagle family of products for RTEMS. In other words, a port of RTEMS to the beagles; specifically the BeagleBoard XM, BeagleBone 'White,' and the BeagleBone Black. Joel mentioned this at the start of the 4-day class to the other participants, so that raised the pressure to succeed within the class timeframe significantly!

I hacked on it as much as I could between classes and socializing and "on the last day" I got it working. I really enjoyed Joel demonstrating it to the rest of the class! We hooked up my laptop to the projector and went to town.

Joel demonstrating RTEMS on my beaglebone black

Pictured: Joel demonstrating RTEMS running on the Beaglebone Black that I brought with me.

And, also on the last day:

Joel demonstrating RTEMS on my beaglebone black

I got a certificate! It really did feel like going back to school and it was quite a nice experience.

Where to go

The Beagleboard XM RTEMS Wiki page contains something of a history of the RTEMS Beagleboard port.

Claas Ziemke started an RTEMS BSP for the original Beagleboard for a GSOC project, so he wrote the basis for that page.

Chris started the wonderfully-named section "Ben and Chris's Big Beagleboard Adventure" - I couldn't have phrased it better, that's really what it feels like! Also sounds a bit like "Bill and Ted" and I hope Chris meant it that way too.

The work-in-progress code is at my github RTEMS fork.

What next, and: foreshadowing

I'm really delighted with how far the BSP has come, as it's a first for me to do something with RTEMS, and indeed get any new OS working almost-from-scratch on a new piece of hardware. Well.. That's an exaggeration, as a lot of ARM support was already there. But still, filling in a few more basics can make it feel like it's from-scratch!

The Beagles are such nice products that it's a real PR opportunity for RTEMS too I believe, and I'm thrilled to be able to contribute that to RTEMS.

I have spent a lot of time since then running the full test suite, and cleaning up the BSP - mostly by minimizing it. Part of the effort to merge this BSP with mainline is that I am working with Chris to get the RTEMS executable running from scratch using JTAG. But that is a topic of another, similarly exciting, post.

social