RTOS Debug Portal2018-09-20T15:42:04+00:00

White Papers

RTOS 101

RTOS 101 explains fundamental RTOS concepts, such as tasks, priority-based scheduling, queues, semaphores and mutexes, and provides examples of how Tracealyzer can be used to understand such issues.

Stop Guessing

Stop Guessing – Trace Visualization for RTOS Firmware Debugging explains key motivations of using an RTOS, current trends in this area, and common pitfalls in RTOS-based development (including an example from NASA).

Real-Time demands of the IoT

Real-Time Demands of the IoT discusses some of the challenges with running software on battery-powered MCUs, and suggests ways that RTOS-based software can help minimise power consumption.

How to visualize response times in FreeRTOS

How to visualize response times in FreeRTOS describes a customer case where Tracealyzer was used to measure and greatly improve response time for network I/O requests.

Tracealyzer Hands On

Verifying Task Timing and Scheduling

September 19th, 2018|

Quite a few embedded software developers don’t know whether their applications meet their timing requirements. In today's Tracealyzer Hands On post, we will explore how to use Tracealyzer to verify task timing and scheduling.

RTOS Debugging Blog Series

#1: Dealing with timing issues

Warped clocks

There is a learning curve when you begin using a real-time operating system in your development. You will work at a higher abstraction level, using  parallel tasks that interact with each other, and you will deal with timing issues.

⇒ Read more …

#2: CPU starvation

Too much on your hands

In embedded systems using multitasking, you may run into a situation where some of your tasks run slowly or not at all. This is called task starvation and it can happen for a number of reasons.

⇒ Read more …

#3: Chasing the jitter bug

Tracealyer Jitter diagram

When you have a task in your system that is supposed to execute at regular intervals, say every 5 milliseconds, then you have a system that is sensitive to random delays – also known as “jitter”.

⇒ Read more …

#4: Priority inversion

Priority Inversion

In embedded systems using multitasking, you may run into a situation where some of your tasks run slowly or not at all. This is called task starvation and it can happen for a number of reasons.

Read more …

#5: Deadlock

Dining philosophers

A clear indication that you may have a deadlock problem is when multiple tasks suddenly stop executing, although no higher priority tasks are running.

Read more …