Welcome to the loop. This is where every embedded developer finds themself for much of the day. I spend a lot of time in the loop. I code. I flash. I debug. I repeat. My productivity (inversely related to my frustration) is a function of how quickly I can go around this loop.
Stratify Toolbox is a flash and debug tool for ARM Cortex-M devices that
Let’s look more closely at how time is spent in the loop.
Code. Many hardware vendors have limited support for non-Windows platforms and require you to use their not-so-resource-friendly IDEs for debugging. The Toolbox works independently of code editing. So you can code however you like, on Windows, Linux, or Mac.
Flash. Flashing should be fast and easy. The Toolbox quickly loads firmware onto any supported ARM Cortex-M chip over SWD. It works quickly and transparently so you can get right to debugging. Operation over USB is driverless on Windows, Linux, and Mac.
Debug. Approaches to debugging are quite diverse, but they tend to fall into one of two camps…
printf()-ers vs. the Code Steppers
I have been a
printf()-er for as long as I can remember. My experience with debuggers made my time in the loop considerably longer as I found myself stepping through code and haphazardly scanning variables. With
printf() (and a little planning), I could have the code show me what I wanted, when I wanted, in the format I wanted. But
printf()-ing has its limitations:
printf()-ers usually use a UART for output, and it can be tricky to get the UART running.
printf()-ing causes delays in program execution which can lead to strange, difficult-to-debug behaviors.
printf()-ers are embarrassed to admit,
printf()depends on a lot of code (even
malloc()in some cases). This can be an irritation when working with larger devices and a show stopper when working with smaller ones.
Fortunately, the ARM Cortex-M has sophisticated debug hardware just sitting there waiting to make
printf()-ing awesome. Stratify Toolbox uses that hardware to provide a fast, minimally-invasive debugging experience that addresses all three of the challenges described above.
printf()is available immediately after startup; there's no need to bring up the UART.
printf()routine is off-loaded to the Toolbox, so the target implementation is both ultra-lightweight and full-featured.
Many of the Toolbox features are available without installing any software on your computer. For example,
curland the Toolbox REST API
When you install
sl—a lightweight command line tool consisting of a single executable file that is under 5 MB and has no external dependencies—you can:
sl is trivial to install (yay!) and just as easy to delete (boo!). It runs on Windows, Mac, and Linux.
The Toolbox has built-in bus analysis and analog IO. You can use target firmware
printf() statements to indirectly command the Toolbox. You can…
Having complete control of the Toolbox from within your code editor helps you minimize loop time by obviating the need to fiddle with external tools and triggers. Just add a
printf() statement that the Toolbox recognizes, and you’re all set.
Stratify Toolbox is powered by Stratify OS, an application-based MCU operating system that takes full advantage of ARM Cortex-M hardware features. Applications are built independently of the kernel and run in memory-protected space with their own stack pointer. The Toolbox includes core features for managing applications, files, and Wi-Fi networks. Furthermore, the SDK allows anyone to build and share additional tools.
With our easy-to-use SDK, you will find yourself building and installing new applications in no time at all. As we demonstrate in our Setup & Configuration Guide, just a few simple steps will have you up and running on Windows, Mac, or Linux in less than ten minutes.
printf()Stream and Firmware Recovery
"As a hardware developer, I keep a number of tools and gadgets handy such as a USB-UART converter, O-scope, multimeter, SWD/JTAG programmer, jumper wires as well as a few others... The Stratify Toolbox will replace all of these and more."
Highland, UT · stratifylabs.co
Stratify Labs builds tools that help developers bring IoT products to life including Stratify OS. Stratify OS is a microcontroller operating system built specifically to handle the growing complexity demanded by IoT devices. It features complete kernel/application separation (in both the build and execution), filesystem and hardware abstraction, automatic updates, as well as built-in networking and security. We also are building the Toolbox (powered by Stratify OS), but you already knew that.
A USB hub with per-port power and data disconnects + dev board + I²C, GPIO, and SPI bridges
A small, portable, USB-connected electronics lab-on-a-board that includes an oscilloscope, waveform generator, power supply, logic analyzer, and multimeter.
A better SPI adapter