RTOS ChibiOS/RT on Arduino

ChibiOS/RT can be valuable on m328 Arduinos.

I get a lot of Email from people who lose data points when logging data to an SD at rates over about 10 points/sec. SD cards can take as long as 200 ms for a write due to the overhead of the large flash erase size and wear leveling.

It is easy to implement a better data logging program with a RTOS. You write a small high priority task that is triggered to run by the OS system timer. The high priority task reads one or more analog channels or other sensors. It queues the data for a lower priority task that writes to the SD. The high priority task may execute a number of times while the lower priority task does a single write to the SD.

The context switch overhead is reasonable for ChibiOS/RT. An analogRead takes over 100 us while the context switch takes only 15 us.

On the discovery boards. I have been doing a lot of development and really like the st-link debug with SWD. Wish the Arduino had a similar feature.

You should try STM Studio.

STM Studio is a graphical user interface that allows sampling and visualizing in real time
user's variables while the application is running. It is expected to run on PCs with Microsoft®
Windows operating systems.
The product relies on ST-LINK hardware providing the ability to read on-the-fly data from the
microcontrollers RAM, without being intrusive.

Runs on PCs with Microsoft®Windows XP, Vista and Windows 7 OS
Connects to any STM8 via ST-LINK, RLink or STICE (SWIM protocol)
Connects to any STM32 via ST-LINK (JTAG or SWD protocols)
Reads on-the-fly (non intrusive) variables from RAM while application is running
Parses DWARF debugging information in the ELF application executable file
2 types of viewer:
Variable viewer - Real-time waveforms, oscilloscope-like graphs
TouchPoint viewer - Association of 2 variables, one on the X axis, one on the Y axis
Possibility to log data into a file, and replay later (exhaustive record display, not real-time)

It can be used like a logic analyzer for software. You import variable from an .elf file and then setup tables and graphs to display them in real time.