Exploiting C undefined behavior to blink an LED

When dealing with errors in firmware, one encounters formal explanations of concepts like "undefined behavior," "storage duration," "variable lifetime," "initialization," and "dereferencing", whether scrolling Stack Overflow, arguing with your LLM of choice, or studying C standards at university, or discussing over an implementation detail with a colleague. These concepts are presented theoretically, rigorously, as abstract … Continue reading Exploiting C undefined behavior to blink an LED

Open source ARM based toolchain development and debug on Windows with no emulation

Using a manufacturer independent tooling can have good impacts on autonomy, learning experience and realization on what really works for an engineer regarding the whole embedded development process. I wanted to look for a complete setup working natively in Windows, yet as much as possible open source, to have a manufacturer independent tooling. I will … Continue reading Open source ARM based toolchain development and debug on Windows with no emulation

Toggling a pin, thoughts on code portability

There are many articles that explain embedded software, bare metal programming, and architectural design, providing a lot of practical tips. The great majority of projects, particularly those that require quick but nice prototypes, are based on Arduino. However, starting an Arduino project seems not to require any theoretical knowledge of firmware architecture, bare metal, and … Continue reading Toggling a pin, thoughts on code portability