Ceedling
A build system for C unit tests that ties the Unity test framework to the CMock mock generator, aimed squarely at embedded work.
It comes from ThrowTheSwitch.org and is built in Ruby on top of Rake. Unity supplies the assertions, CMock reads your header files and generates fake versions of every function, and Ceedling works out which files belong to which test, compiles them and runs them. That lets a driver that pokes registers be tested by swapping the module beneath it for a mock.
Tests usually run with the host compiler rather than on the target, which is the whole point: fast feedback without flashing anything. It catches logic errors but not timing, interrupt ordering or compiler differences, so it doesn't replace testing on real hardware. James Grenning's 2011 book Test-Driven Development for Embedded C did much to popularise the approach.