Changes to Ceedling - no more rake

Have you tried to use Ceedling recently, but got this error when you tried to run rake?

No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
Read More

Unit testing with flash (EEPROM)

Do your embedded applications ever save any data to flash memory (aka EEPROM)? This where you typically store non-volatile information that needs to preserved if the device is powered down.

This sort of thing is tough to test in the traditional way -- by loading code onto the target and running it -- because it's hard to set and _re-set_ the data in flash for testing. It can also be harder to inspect the data when it's in flash memory.

Read More

Designing firmware from the inside out

I don't know about you, but a very natural way for me to think about designing embedded software is from the "outside in". I've been thinking about this a bit recently, and I'm not so sure that's the best approach.

Read More

When you want to unit test... abstract the hardware

So you write embedded software in C and you think that unit testing might help you do it better. You already know about creating well-defined software modules and how this makes it easier to write unit tests. But what else can you do to make these modules easier to test? What are some more coding patterns that make unit testing easier?

Read More

For embedded TDD, don't worry so much about testing on the target

If you want to do embedded test-driven development (TDD), running your automated unit tests on the target is too slow. When you're test-driving, you're running the tests very frequently. You will not want to wait for the tests to download to the target. It will disrupt your flow and you'll get more easily distracted.

Read More

CMock vs FFF - A Comparison of C Mocking Frameworks

Did you know you have options when it comes to creating mocks for your C-language unit tests?

I've been spending a lot of time working with CMock -- since it's used by Ceedling -- but I've just been checking out FFF (the "fake function framework"). It's well done and I think it deserves a closer look.

Read More