Operations | Monitoring | ITSM | DevOps | Cloud

Nash's Four Favorite Firmware Debug Tools

As much as I enjoy writing firmware, I am, at heart, a hardware engineer. I love hunting for minutia in chip datasheets. I love fiddling with eval boards, tacking on wires, and reworking nets together. I love flipping through The Art of Electronics, finding a new circuit, and piecing through its operation. This is why, when invited to write for Interrupt, I jumped at the chance to write about a hardware-related topic that’s near and dear to my heart: debug tools.

Tracing & Logging with the `TRICE` Library (Interrupts too!)

If you develop software for an embedded system, you need some kind of system feedback. Debuggers are awesome tools, but when it comes to analyzing dynamic behavior in the field, they cannot be used. For remote debugging, many engineers turn to printf, which can usually be quickly put in place after having a putchar() implemented. This turns out to be an expensive way, in terms of processor clocks and required FLASH memory for the strings.

Debug source code in real time with Rookout's Datadog App

Earlier this year we launched Datadog Apps, which seamlessly integrate functionality from third-party tools into Datadog’s centralized monitoring platform. This project has enabled us to collaborate with some of our partners, such as PagerDuty and LaunchDarkly, to extend the Datadog UI and provide our customers with new solutions for incident management, feature flag optimization, and more.

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.

Datadog acquires Ozcode

At Datadog, we believe that having visibility into production is crucial to building better software, especially as modern environments become more and more complex. Bugs that occur in production are often difficult to reproduce locally, which leaves developers guessing about what went wrong. To solve this problem, teams need the same depth of visibility into their production environments as they do into their local environments.

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.

How to Debug, Update & Monitor Embedded Android Devices

Even when you think there are no bugs in your fleet of Android OS devices, huge issues can come up at any time. How do you find and fix those issues before your customers notice them? With full device observability, you'll never have to worry about even the most high-impact bugs affecting your IoT devices in development or production.