• Practical Design Patterns: Opaque Pointers and Objects in C

    Objects are not a native concept in C, but you can achieve something resembling objects by using a design pattern known as the “opaque pointer”. This post will show you what the pattern is, explain some of the finer details, and provide guidance on when you should and shouldn’t use it.

  • What we've been reading in April

    Here are the articles, videos, and tools that we’ve been excited about this April.

  • Share Your Debugging Scripts

    In this short-form post, I want to share how you can go about keeping a central gdbinit file that you can commit into your project’s repo and automatically source it in the popular editor and IDE environments that firmware engineers find themselves in today.

  • What we've been reading in March

    Here are the articles, videos, and tools that we’ve been excited about this March.

  • Balancing Test Coverage vs. Overhead

    In a perfect world, all software and firmware are given precisely the time and budget it needs to be successful, code is uniformly well-written to industry best practices, and the code is complemented with a complete test suite instrumenting all aspects of the software.

    In practice, this rarely, if ever, happens! Development teams and organizations continually have to re-prioritize tasks to meet deadlines and avoid going over budget. In this article, we’ll cover how you can think about rapidly modifying and updating firmware, testing these changes, all the while allowing you to get the product out the door.

  • What we've been reading in February

    Here are the articles, videos, and tools that we’ve been excited about this February.

  • Introduction to ARM Semihosting

    This post introduces semihosting and shows how to use it and integrate it into your own embedded projects.

  • What we've been reading in January

    Here are the articles, videos, and tools that we’ve been excited about this January.