Improving the Embedded Development Process

O’Reilly Open Source Convention
July 2007

Matt Fletcher and Bill Bereza

Agile development is king at Atomic Object. We recently worked on an embedded project where we created the software responsible for monitoring and reporting the battery level of an automated guided vehicle. By handcrafting several Ruby based tools, we made our embedded experience easy, interesting, and fun.

As anyone who has developed test first knows, the environment must make it quick and easy to create lots of little tests that run at the touch of a button. We had hardware devices for reading and writing data to and from the board, but no Ruby interfaces to them for our DSL driven system testing framework, Systir. Thus, in pursuit of easy, automated testing, three new tools emerged:

  • A script to generate mock C functions from a header file
  • A Ruby adapter to an analog and digital input/output device
  • A Ruby adapter to a CAN bus device

In addition, we used existing Ruby tools like Argent and Rake to seamlessly weave everything together. Building and testing became painless. With these tools, we developed our embedded application with the same methods we’d use on any other agile project.

In our presentation, you’ll learn:

  • How we did system and test-driven embedded development
  • How we created tools to increase testability and automation
  • How to avoid being crushed by the constraints of embedded projects

Improving the Embedded Development Process [PDF]

Edit