Operations | Monitoring | ITSM | DevOps | Cloud

Latest Posts

Pocket article: How to implement and use `.noinit` RAM

Imagine there’s an embedded system that needs to persist some state when the processor restarts (either intentionally or due to a catastrophic error). This could be some external hardware information (what’s the position of a motor or actuator?) or a method to communicate the reset to the user (display some information on the device’s display). A simple way to store information through a reboot is to use what’s called“non-initialized” memory.

New Events and Jobs Pages on Interrupt

François, Chris, and I started Interrupt 2.5 years ago because we wanted a repository of great embedded firmware content, which didn’t exist. Looking back at all the posts that our community contributors have published, we think we’ve made a respectable attempt at this goal. Our goals for Interrupt were always more ambitious than just a blog with quality content. We wanted Interrupt to become a hub for everything related to embedded firmware.

Automatically format and lint code with pre-commit

I love clean and tidy codebases. I love them even more if I don’t have to manually spend hours doing it myself. The problem is not everyone shares the same love and passion for tidy codebases, especially when we’re pressed for time trying to get a new firmware build released. This is where automated formatting and linting tools come in.

Profiling newlib-nano's memcpy

Newlib is a very popular libc targeting embedded systems. It’s the libc that ships with the GNU Arm Embedded Toolchain published by ARM. This article takes a look at one of the commonly used functions provided by the Newlib C library: memcpy. We’ll examine the default nano implementation and the performance implications, comparing it against the faster non-default implementation. Like Interrupt? Subscribe to get our latest posts straight to your mailbox.