ThrowTheSwitch Improved with Tools & Tips for Embedded Developers

Higher-level software development has grown by leaps and bounds recently, but embedded has lagged significantly behind.

To meet this need, a group of developers (including a few of us at Atomic Embedded) formed ThrowTheSwitch, an organization whose mission is to help evolve the way development is done in the embedded realm. ThrowTheSwitch’s portal is a central hub for publicizing development techniques, including the free and open-source tools that we have developed to help in this effort.

We recently made two big changes to ThrowTheSwitch.

1. Forum Migration to GoogleGroups

The discussion forums are now powered by GoogleGroups and will support general discussions and a place for our users to submit feature requests. The forums are tightly integrated right into our website, so it’s easy to submit and filter content. Thanks Google!

2. Tool Migration to GitHub

Embedded’s primary tools (Unity, CMockCeedling and CException) are geared towards developing in the C language, which many of us embedded peeps are constrained to.

We migrated these tools from SourceForge to GitHub under a ThrowTheSwitch Organization at This has given us much better issue tracking for each of our tools, and allowed us to move from Subversion to Git for source control.

We are excited about our users being able to create Pull Requests in order to submit patches for any of our tools in an efficient and managed manner. The old home of our sources on SourceForge has been tombstoned, and links now point to the new home for each project on GitHub, as well as links to the ThrowTheSwitch website.

Tools for Embedded Developers

  • Unity is a basic testing framework. It’s portable C, easy to configure, and runs on almost everything.
  • CMock is a framework that works with Unity to help you create mocks and stubs of interfaces to simplify testing.
  • Ceedling is a build and test manager to help make testing and developing embedded apps less painful.
  • CException is simple exception handling in C. It is significantly faster than full-blown C++ exception handling but loses some flexibility. It is portable to any platform supporting setjmp/longjmp.