Register Target Framework, or RTF, is a framework that was originally concepted at work along with one of my coworkers. We had developed the concepts internally and applied them to an existing code base, so some corners were cut in the process. Subsequently, I took the core concepts we developed and turned them into a fully fleshed out open-source library.

It is available at GitHub. The README there gives a decent overview of the library. However, this blog series is meant to provide a comprehensive introduction and deep-dives into some parts of the library.

Motivation

The motivation behind RTF was a project where we were testing an ASIC for the company. This ASIC processed mission data, but needed a separate processor to actually configure and monitor it. In our testing setup, a plain PC acted as that other processor and it used a number of interfaces to control the ASIC. Functionally, these interfaces were able to read and write registers within the device that cause the device to perform some action or report some status. The ASIC folks provided us with procedures (list of registers to write and what data to put in them or how to calculate it) that we had to implement in our code to test the device. There were also a number of ancillary devices that did things like provide clocks or control GPIOs that we were also responsible for.

Basically it all boiled down to

  • read and write registers on various devices
  • perform sequences of register operations on various devices in specified orders

RTF aims to provide a framework for both of these core concepts and do it in a way that is intuitive and readily reusable.

Each part of RTF is explained in separate articles:

Posts in this series: