Your code compiles. Tests pass. Everything looks solid.
You flash it onto the SoC… and something feels off.
You add logs. You step through with a debugger - everything behaves perfectly…. until you let it run freely again
Now imagine this is a crash detection task in an airbag controller: a single millisecond delay, caused by interference from another task, could have catastrophic consequences. Rare. Silent. Invisible to traditional debugging.
This is the kind of bug that frustrates even experienced embedded developers- not a logic error, but a timing problem.
Many developers turn to hardware trace, which captures instruction execution and task events with precise timing. It can show what your system is doing - and when. But not every SoC supports it. Some lack the required features. Others can’t expose trace pins due to design constraints. Suddenly, that powerful tool is out of reach.
So, what do you do when your SoC doesn’t give you hardware trace?
What? SWAT.
This is where software-based tracing comes in.
Software trace bridges the gap by using existing debug interfaces to provide runtime profiling and trace data—without requiring additional hardware.
At its core, software tracing means generating trace messages in software. You add instrumentation to the code, buffer the generated events in memory, and then send them off-chip - using, for instance, BlueBox over a standard debug port.
This approach extends trace capabilities to platforms that couldn’t support hardware trace.
SWAT, from TASKING, brings this capability into practice.
Here’s how it works in practice:
Integrate SWAT into your application - a library that enables your software to generate trace events during runtime. Then download the application to the SoC and start recording. During runtime, trace events are generated and transmitted to BlueBox via the debug port, thanks to SWAT. BlueBox acts as a bridge between the SoC and the PC, capturing the trace data and forwarding it to the host. On the PC, winIDEA, an IDE for debugging and software analysis, receives the incoming data and lets you visualize and analyze the recording.

How SAFERTOS® comes into the picture
Embedded systems are designed for specific tasks and run in environments with limited resources such as memory and processing power. To manage these constraints efficiently, they rely on a specialized operating system.
An operating system is responsible for scheduling tasks and allocating hardware resources like sensors and actuators. In many applications, it is not enough to simply execute tasks - the system must execute them at the right time.
This is exactly the role of SAFERTOS®.
It is a lightweight, reliable, and deterministic RTOS used in safety-critical systems where failure is not an option. Complying with leading international functional safety standards, it is available pre-certified for IEC 61508 and ISO 26262. SAFERTOS® is also delivered with the Design Assurance Pack (DAP) that provides all documentation needed for certification.
The perfect couple of your application
Understanding runtime behavior is key. Application complexity can mask subtle design conflicts that only surface once all software components are integrated.
With the combined power of SWAT and SAFERTOS®, you can achieve safe and predictable application behavior.
Together, they provide RTOS-aware tracing, giving you visibility in how tasks are scheduled, when they execute, and how your application interacts with the OS. Every task state transition, context switch, and key application event is captured in real time - without stopping the SoC and with minimal impact on its performance.
What you can see
Once SWAT receives data from the SoC and transfers them via the debug port, analysis follows in winIDEA.
- OS Scheduling analysis
The profiler timeline allows you to view everything recorded over the time. It displays all operating system tasks and shows, at any given moment, whether a task is running, ready, blocked, or suspended - and for how long.
This provides an immediate overview of what is happening across the different cores of your SoC, enabling rapid root-cause analysis of timing issues.

- CPU load and resource usage
Understand how much processing time each task consumes, identify high-priority task interference, and pinpoint why certain tasks may not be executing as expected.
- Timing metrics
Derive timing relevant metrics and statistics - such as net, gross, call, and period times.
Monitor execution times, periodicity and timing anomalies. Detect subtle delays or jitter in periodic tasks, which is essential for safety-critical applications such as automotive controllers.

- Customizable reporting and analysis
Trace data can be exported for further analysis. winIDEA allows you to export data in formats such as BTF and MDF4 export format for use in third-party tools.
You can also generate configurable HTML reports in winIDEA to demonstrate timing compliance, CPU load, and task behavior to management or customers.
Alternatively, export the data as e.g. CSV and use the winIDEA SDK to automate testing procedures and perform additional analysis of trace recordings.
Key takeaway
In embedded systems, correctness isn’t just about what the software does - it’s also about when and how it does it.
With the combined power of SWAT and SAFERTOS®, you can achieve safe and predictable application behavior and gain the runtime visibility needed to support safety certification activities.
Ready to see what your system is really doing at runtime?
Explore TASKING SWAT.
