memory

Constraining Dynamic Memory Fragmentation

Introduction When developing Embedded Software for memory constrained microcontrollers (typically using Embedded C), the most common constraint is the memory – in particular, RAM is often the most constrained resource. This issue is further exacerbated when using a multithreaded operating system, where many threads are running simultaneously – each allocates some Read more…

By Bryan Jarmain, ago
code comprehension

Back to Basics Source Code Comprehension

Good Software diagramming is the practice of documenting the essential parts of your source code that are not already clear (such as the underlying structure), or that are hidden by the other details. After having been dissatisfied with any single automated tool, good diagramming turns out to be more of an art form as I go back to basics and discover a combination of common and free tools and techniques that yield very satisfying results.

By Bryan Jarmain, ago
code comprehension

Avoid the abuse of Function Pointers in C

When programming in an environment that discourages the use of function pointers, one may find it difficult not to violate some of the common programming principals. I will be covering one common use of function pointers which is very often better avoided, especially when writing firmware for memory constrained systems such as many types of IoT-based products.

By Bryan Jarmain, ago
Quality

How to Scale C Unit Testing

Unit testing C code generally has some significant challenges when compared to some other languages. The main difficulty is that it can be quite difficult to test the outcome of a function call and how it has interacted with other modules and functions. This is because the state of the module Read more…

By Bryan Jarmain, ago